2016-12-03 7 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(), потому что сигнал соединяется как с помощью этой команды, так и по имени. –

ответ

1

Ваша кнопка называется buttX в дизайнере, поэтому функция «Автосоединение по имени» в setupUi() находит соответствующий слот.

Вы можете

  1. удалить явные соединять
  2. переименовать кнопку
  3. переименовать слот

Я бы лично пойти на последний, то есть использовать имя слота, который делает не имеет шаблона, который ищет «автосоединение». . onButtXClicked