2012-11-05 60 views

回答

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_()) 

反正你應該問問題時提供更多的細節:說你已經嘗試一下,把一些代碼的,有意義的解釋等

+1

令人驚訝的是這個問題出現的頻率。其他可能性是使用[按鈕組](http://doc.qt.nokia.com/4.8-snapshot/qbuttongroup.html)或[信號映射器](http://doc.qt.nokia.com/ 4.8快照/ qsignalmapper.html)。 – ekhumoro