2016-12-03 93 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