Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插槽被调用两次,尽管pyqtSlot decorator_Qt_Signals Slots_Pyqt5 - Fatal编程技术网

插槽被调用两次,尽管pyqtSlot decorator

插槽被调用两次,尽管pyqtSlot decorator,qt,signals-slots,pyqt5,Qt,Signals Slots,Pyqt5,这是我在qt5 designer中创建的一个类。当我单击按钮时,插槽被调用两次 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)

这是我在qt5 designer中创建的一个类。当我单击按钮时,插槽被调用两次

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

我缺少什么?

您的按钮在designer中被称为
buttX
,因此
setupUi()
中的“按名称自动连接”功能会找到一个匹配的插槽

你也可以

  • 删除显式连接
  • 重命名按钮
  • 重命名插槽
  • 我个人倾向于后者,即使用一个插槽名称,该名称不具有“自动名称连接”所寻找的模式。
    例如,
    onButtXClicked

    我对python了解不多,但也许您应该删除connect()行,因为信号是通过此命令和名称连接的。