PyQt5 输入对话框 | Python
PyQt5 提供了一个名为 QInputDialog 的类,用于接收用户的输入。在大多数应用程序中,都会出现这样一种情况,即用户需要输入一些数据,因此需要输入对话框。输入可以是 String 或 Text、Integer、Double 和 item 类型。
使用的方法:
这些方法返回具有两个元素的元组——用户输入和状态,无论用户在提供所需输入后单击“确定”(真)还是“取消”(假)按钮。
- getText():这用于从用户那里获取文本值。
- getInt():用于从用户那里获取整数值。
- getDouble():用于从用户那里获取 Double 值。
- getItem():这用于从用户的多项选择中获取选定的项目。
例子:
让我们使用 QInputDialog 创建一个简单的应用程序,其中将出现一个主窗口,其中包含一个“继续”按钮。单击该按钮后,将打开多个输入对话框,询问姓名、滚动、CGPA 和从语言列表中学习的编程语言。
最后,主窗口将给出一条确认消息以及用户提供的详细信息。
以下是代码 -
Python3
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(QtWidgets.QWidget):
def setupUi(self, MainWindow):
MainWindow.resize(422, 255)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 130, 93, 28))
# For displaying confirmation message along with user's info.
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(170, 40, 201, 111))
# Keeping the text of label empty initially.
self.label.setText("")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Proceed"))
self.pushButton.clicked.connect(self.takeinputs)
def takeinputs(self):
name, done1 = QtWidgets.QInputDialog.getText(
self, 'Input Dialog', 'Enter your name:')
roll, done2 = QtWidgets.QInputDialog.getInt(
self, 'Input Dialog', 'Enter your roll:')
cgpa, done3 = QtWidgets.QInputDialog.getDouble(
self, 'Input Dialog', 'Enter your CGPA:')
langs =['C', 'c++', 'Java', 'Python', 'Javascript']
lang, done4 = QtWidgets.QInputDialog.getItem(
self, 'Input Dialog', 'Language you know:', langs)
if done1 and done2 and done3 and done4 :
# Showing confirmation message along
# with information provided by user.
self.label.setText('Information stored Successfully\nName: '
+str(name)+'('+str(roll)+')'+'\n'+'CGPA: '
+str(cgpa)+'\nSelected Language: '+str(lang))
# Hide the pushbutton after inputs provided by the use.
self.pushButton.hide()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show() '
sys.exit(app.exec_())
输出:
单击“继续”按钮。
给出细节。
确认消息以及用户数据。