2016-09-12 143 views
1

我使用pyqt5.I将pushbutton信号连接到dididi()。当我点击它将打印信息的按钮时它被支持,但是当我单击按钮时,它不打印信息。为什么?我能做些什么来解决它?pyqt按钮点击不起作用

# -*- coding: utf-8 -*- 

# Form implementation generated from reading ui file 'bank1.ui' 
# 
# Created by: PyQt5 UI code generator 5.6 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt5 import QtCore, QtGui, QtWidgets 
from PyQt5.QtCore import QBasicTimer 
from PyQt5.QtGui import QColor, QFontMetrics, QPainter, QPalette 
from PyQt5.QtWidgets import (QApplication, QDialog, QLineEdit, QVBoxLayout, 
     QWidget) 
from PyQt5.QtCore import QCoreApplication 

class Ui_Form(object): 
    def setupUi(self, Form): 
     Form.setObjectName("Form") 
     Form.resize(400, 300) 
     self.pushButton = QtWidgets.QPushButton(Form) 
     self.pushButton.setGeometry(QtCore.QRect(80, 200, 71, 21)) 
     self.pushButton.setObjectName("pushButton") 
     self.pushButton_2 = QtWidgets.QPushButton(Form) 
     self.pushButton_2.setGeometry(QtCore.QRect(230, 200, 72, 23)) 
     self.pushButton_2.setObjectName("pushButton_2") 
     self.textEdit = QtWidgets.QTextEdit(Form) 
     self.textEdit.setGeometry(QtCore.QRect(140, 90, 104, 31)) 
     self.textEdit.setObjectName("textEdit") 
     self.pushButton.clicked.connect(self.dididi) 
     self.pushButton_2.clicked.connect(self.dididi) 

     self.retranslateUi(Form) 
     QtCore.QMetaObject.connectSlotsByName(Form)    

    def retranslateUi(self, Form): 
     _translate = QtCore.QCoreApplication.translate 
     Form.setWindowTitle(_translate("Form", "RCT")) 
     self.pushButton.setText(_translate("Form", "连接")) 
     self.pushButton_2.setText(_translate("Form", "发送")) 
    def dididi(self): 
     print("hello world") 

if __name__ == "__main__": 
    import sys 
    app = QApplication(sys.argv) 
    widget = QWidget(None) 
    Ui_Form().setupUi(widget) 
    widget.show() 
    sys.exit(app.exec_()) 
    pass 

回答

0

只需将@staticmethod放在“dididi()”方法的上方即可。

请参阅explanation关于@staticmethod @classmethod和常规方法。

@staticmethod 
def dididi(): 
    print("hello world")