我有一个按钮列表,但我不知道如何拥有列表中每个按钮的功能。
flatButton = QtGui.QPushButton("Band " + str(i))
self.Layout1.addWidget(flatButton)
list.append(flatButton)
从标题中我假设你有一堆按钮,它们的clicked
信号连接到同一个插槽,当一个按钮被点击时,你想识别它。如果我是对的,您需要的是sender()
方法。以下代码显示了它:
from PyQt4.QtGui import *
class MyWidget(QWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.hlayout = QHBoxLayout()
self.setLayout(self.hlayout)
for c in range(3):
b = QPushButton("button {}".format(c), self)
b.clicked.connect(self.clickHandler)
self.hlayout.addWidget(b)
def clickHandler(self):
button = self.sender()
print button.text()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
无论如何,在提出问题时您应该提供更多细节:说出您尝试过的内容,输入一些代码,有意义的解释等。