我在Python 3.8(PyQT5(中的代码有问题。我想在点击按钮后进行简单的打印,但什么都没发生。
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic.properties import QtCore
from FutureMeMailSender import Ui_FutureMeMail
class FutureMeMail(QtWidgets.QMainWindow, MailSender):
def __init__(self):
super(FutureMeMail, self).__init__()
# Set up the user interface from Designer.
self.ui.pushButtonSendMail.clicked.connect(self.clicked)
self.receiver_mail = self.ui.lineEditMail.text()
self.ui = Ui_FutureMeMail()
self.ui.setupUi(self)
self.show()
def clicked(self):
print("PushButtonAction -- Hello")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = QDialog()
ui = Ui_FutureMeMail()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
clicked
已经是对象的一个属性,如果你这样命名这个函数,你会对它进行阴影处理。例如,使用on_click
。
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic.properties import QtCore
from FutureMeMailSender import Ui_FutureMeMail
class FutureMeMail(QtWidgets.QMainWindow, MailSender):
def __init__(self):
super(FutureMeMail, self).__init__()
# Set up the user interface from Designer.
self.ui.pushButtonSendMail.clicked.connect(self.on_click)
self.receiver_mail = self.ui.lineEditMail.text()
self.ui = Ui_FutureMeMail()
self.ui.setupUi(self)
self.show()
def on_click(self):
print("PushButtonAction -- Hello")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = QDialog()
ui = Ui_FutureMeMail()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
您需要创建self.ui
对象
然后做:
self.ui.pushButtonSendMail.clicked.connect(self.clicked)
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic.properties import QtCore
from FutureMeMailSender import Ui_FutureMeMail
class FutureMeMail(QtWidgets.QMainWindow): # ??? , MailSender):
def __init__(self):
super(FutureMeMail, self).__init__()
# Set up the user interface from Designer.
self.ui = Ui_FutureMeMail() # +++
self.ui.setupUi(self) # +++
self.ui.pushButtonSendMail.clicked.connect(self.clicked)
self.receiver_mail = self.ui.lineEditMail.text()
# --- self.ui = Ui_FutureMeMail()
# --- self.ui.setupUi(self)
# self.show()
def clicked(self):
print("PushButtonAction -- Hello")
self.ui.lineEditMail.setText('Hello PyQt5')
if __name__ == "__main__":
app = QApplication(sys.argv)
# window = QDialog()
# ui = Ui_FutureMeMail()
# ui.setupUi(window)
# window.show()
w = FutureMeMail() # +++
w.show() # +++
sys.exit(app.exec_())