2016-12-03 47 views
0

這是我在qt5設計器中創建的一個類。當我點擊按鈕時,插槽會被調用兩次。儘管pyqtSlot裝飾器插槽被調用兩次

class CustomerList(QWidget, Ui_CustomerList): 
    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 
     self.setupUi(self) 
     self.buttX.clicked.connect(self.on_buttX_clicked) 

    @pyqtSlot() 
    def on_buttX_clicked(self): 
     print("on_buttX_clicked") 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    w = CustomerList() 
    w.show() 

    sys.exit(app.exec_()) 

我在這裏錯過了什麼?

+0

我對python瞭解不多,但也許應該刪除connect()行,因爲信號通過此命令和名稱連接。 – 2016-12-03 12:01:01

回答

1

您的按鈕在設計器中名爲buttX,因此setupUi()中的「通過名稱自動連接」功能會找到一個匹配的插槽。

您可以

  1. 刪除顯式連接
  2. 重命名按鈕
  3. 重命名插槽

我會親自去爲後者,即使用做插槽名稱沒有「自動連接」尋找的模式。 例如onButtXClicked