PyQT5-QPushButton(已单击)-不工作



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

相关内容