Reputation: 47
...
Textbox = QtGui.QInputDialog.getText(self, 'Get Name',
'Enter Name:')
Text =Texbox[0]
Textbox2 = QtGui.QInputDialog.getText(self, 'Get Surname',
'Enter Surname:')
Text2 =Texbox2[0]
...
I am using python 3.3 with pyqt4. When making a GUI, i am asking the user to enter specific details using multiple popup dialog boxes within a function, however when nothing is entered into the box it will accept such value, instead of asking the user to reenter. There is also the option to close the dialog box (the exit button in the top right), however when this is clicked the next dialog box will run instead of stop the entire function. I want the dialog boxes to stop running when the exit button is activated, and the dialog box to not allow no vlaues being entered. If any other information is needed please let me know.
Upvotes: 0
Views: 3310
Reputation: 14360
Use a form for gathering this information. You can have a dialog that look like code below. This code might not be exactly what you need, but sure point you the right direction.
here is the code (generated using QtDesigner an pyuic4)
Note: Automatically generated internationalization's stuff were removed for making the example briefest.
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_())
Upvotes: 1