首页 > 解决方案 > PyQt 突然停止显示 QMessage?

问题描述

这段代码昨天运行良好,但是当我今天再次运行这段代码时,它忽略了第一个 if 语句(显示消息的那个)并直接转到 elif 语句。如果 team_name 为 - " "(空)或包含任何特殊字符,它应该显示一条消息。我试图将“”(空)和特殊字符都放在输入字段中。其他一切正常,只有消息没有显示。此外,QMessageBox 模块已经导入。

team_name, ok = QtWidgets.QInputDialog.getText(MainWindow, "Team Name", "Enter Name Of Your Team:")
    if ok:
        if team_name.isalnum() == False:
            msg = QMessageBox()
            msg.setWindowTitle("Team Name")
            msg.setText("Invalid Team Name")
            msg.setInformativeText("Team Name Must Not Be Empty Or Contain Any Special Characters!")
            msg.setIcon(QMessageBox.Critical)
            msg.buttonClicked.connect(self.new_team)
        elif team_name.isalnum():
            self.team_name_lbl.setText(str(team_name))

标签: pythonpython-3.xpyqtpyqt5

解决方案


代码运行良好,但您忘记执行.QMessageBox()

    if ok:
        if team_name.isalnum() == False:
            msg = QMessageBox()
            msg.setWindowTitle("Team Name")
            msg.setText("Invalid Team Name")
            msg.setInformativeText("Team Name Must Not Be Empty Or Contain Any Special Characters!")
            msg.setIcon(QMessageBox.Critical)
            msg.buttonClicked.connect(self.new_team)
            msg.exec()
        elif team_name.isalnum():
            print("It works")


推荐阅读