我创建了一个布局并通过 for 循环将 4 个按钮放在那里。
layout = QtGui.QVBoxLayout()
my_list = ['1', '2', '3', '4']
for elem in my_list:
button = QtGui.QPushButton(elem)
layout.addWidget(button)
然后我想检查是否有任何按钮具有我在变量 VAR 中确定的文本。如果是这样 - 做点什么。
items = (layout.itemAt(i) for i in range(layout.count())) #get list of items in lay
for w in items:
print w
#it gives <PyQt4.QtGui.QWidgetItem object at 0x031F65D0> * 4
#instead of QPushButton.
VAR = '1'
if w.text() == VAR : #Problem here.
print 'I got what I want.'
#the problem is that QWidgetItem has no atribute text.
请告诉我如何获取 QPushButtons 列表而不是 QWidgetItems 或针对此问题的任何其他解决方案。
最佳答案
QWidgetItem 的文档很清楚。你只需要做:
for item in items:
w = item.widget()
关于python - PyQt 中的布局由 QWidgetItems 而不是 QPushButtons 组成,并且没有属性文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40469368/