我想创建一个用于数据详细说明的 GUI。它需要文件所在的目录路径以及用于详细说明它们的附加参数。
我想设置一个两级控件,以便用户在他们没有选择目录时得到通知。如果有,如果提供了非数字参数,则必须引发错误消息:
这是代码:
class Window(QtWidgets.QMainWindow, gui.Ui_myGUI):
def __init__(self, parent = None):
super(Window, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.GetDirectory)
self.pushButton_2.clicked.connect(self.ValidateInput)
self.show()
def GetDirectory(self):
self.response = QFileDialog.getExistingDirectory(self, caption = 'Select a folder')
os.chdir(self.response)
def ValidateInput(self):
if hasattr(Window, "response"):
exp = str(self.lineEdit.text())
if exp.isnumeric():
self.Process()
else:
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setWindowTitle("Warning")
msg.setText('Numeric data required')
msg.exec_()
else:
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setWindowTitle("Warning")
msg.setText('You need to select a folder')
msg.exec_()
过程是实际数据阐述的方法。
如果没有选择文件夹,这工作正常,但如果在第一条错误消息出现后选择了目录路径,它就不会。
事实上,在这种情况下,即使我选择了正确的文件夹,我仍然会看到第一个消息框,告诉我需要选择一个文件夹。
我想一个简单的解决方案是定义一种方法来获取目录路径和验证输入数据(并最终开始详细说明),但我宁愿将它们分开并链接到 2 个不同的按钮。