这是我的代码:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMessageBox
from config_assign_ui import Ui_ConfigAssign
import pyodbc
import pandas as pd
class Main(QtWidgets.QMainWindow, Ui_ConfigAssign):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self)
self.combo_list()
self.ImportMapButton.clicked.connect(lambda: self.import_map())
self.ExceptButton.clicked.connect(lambda: self.except_file())
def except_file(self):
if self.ExceptCheckBox.isChecked():
print('will do stuff')
else:
mb = QMessageBox()
mb.setWindowTitle('Error')
mb.setText('Please check exception box first')
mb.setStandardButtons(QMessageBox.Ok)
mb.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec_())
消息框打开,但是当我按下按钮时立即关闭。根据我的研究,此消息框在__init__
的末尾超出范围,但是我不确定这意味着什么。我尝试将其中一行更改为:
mb = self.QMessageBox()
但是会导致AttributeError:'Main'对象没有属性'QMessageBox'。帮助总是值得赞赏的。谢谢。