0

我有一个按钮列表,但我不知道如何拥有列表中每个按钮的功能。

flatButton = QtGui.QPushButton("Band " + str(i))
self.Layout1.addWidget(flatButton)
list.append(flatButton)
4

1 回答 1

1

从标题中我假设你有一堆按钮,它们的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_())

无论如何,在提出问题时您应该提供更多细节:说出您尝试过的内容,输入一些代码,有意义的解释等。

于 2012-11-05T13:48:05.100 回答