Python 如何验证并退出该对话框?
我将Python3.3与pyqt4一起使用。在制作GUI时,我要求用户在一个函数中使用多个弹出对话框输入特定的详细信息,但是,如果没有在对话框中输入任何内容,它将接受该值,而不是要求用户重新输入。还有关闭对话框的选项(右上角的“退出”按钮),但是单击该选项时,下一个对话框将运行,而不是停止整个功能。Python 如何验证并退出该对话框?,python,validation,user-interface,input,pyqt4,Python,Validation,User Interface,Input,Pyqt4,我将Python3.3与pyqt4一起使用。在制作GUI时,我要求用户在一个函数中使用多个弹出对话框输入特定的详细信息,但是,如果没有在对话框中输入任何内容,它将接受该值,而不是要求用户重新输入。还有关闭对话框的选项(右上角的“退出”按钮),但是单击该选项时,下一个对话框将运行,而不是停止整个功能。 我希望对话框在“退出”按钮激活时停止运行,并且对话框不允许输入任何值。如果需要任何其他信息,请告诉我。使用表格收集这些信息。您可以创建一个类似下面代码的对话框。这段代码可能并不完全是您所需要的,但一
我希望对话框在“退出”按钮激活时停止运行,并且对话框不允许输入任何值。如果需要任何其他信息,请告诉我。使用表格收集这些信息。您可以创建一个类似下面代码的对话框。这段代码可能并不完全是您所需要的,但一定会为您指明正确的方向 下面是代码(使用QTAN设计器生成) 注意:自动生成的国际化内容被删除,以使示例最简洁
你停止跑步是什么意思?崩溃?是的,由于用户插入的信息存储在我的sqlite数据库中,因此我不希望在关闭对话框(或输入空值)时存储任何信息。但是,我不想结束我的整个程序,因为在使用这些对话框时,我会让GUI的其他部分运行(例如链接到这些对话框的页面)。感谢反馈,我已经适应了验证qinput对话框,当我不输入任何信息时,该对话框将重新出现(并且不会跳到下一个对话框)。注意,我保留了姓名和姓氏的快速对话框(一次弹出一个)。但是,当我单击“取消”或“退出”时,我将看到下一个对话框,而不是所有未运行的对话框,这正是我想要的。
...
Textbox = QtGui.QInputDialog.getText(self, 'Get Name',
'Enter Name:')
Text =Texbox[0]
Textbox2 = QtGui.QInputDialog.getText(self, 'Get Surname',
'Enter Surname:')
Text2 =Texbox2[0]
...
from PyQt4 import QtCore, QtGui
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(371, 113)
self.gridLayout_2 = QtGui.QGridLayout(Dialog)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout = QtGui.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.label = QtGui.QLabel(Dialog)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.lineEdit = QtGui.QLineEdit(Dialog)
self.lineEdit.setObjectName("lineEdit")
self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
self.lineEdit_2 = QtGui.QLineEdit(Dialog)
self.lineEdit_2.setObjectName("lineEdit_2")
self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 1)
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
self.buttonBox = QtGui.QDialogButtonBox(Dialog)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.gridLayout_2.addWidget(self.buttonBox, 1, 0, 1, 1)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), Dialog.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())