📜  PyQt5 输入对话框 | Python

📅  最后修改于: 2022-05-13 01:54:22.523000             🧑  作者: Mango

PyQt5 输入对话框 | Python

PyQt5 提供了一个名为 QInputDialog 的类,用于接收用户的输入。在大多数应用程序中,都会出现这样一种情况,即用户需要输入一些数据,因此需要输入对话框。输入可以是 String 或 Text、Integer、Double 和 item 类型。
使用的方法:
这些方法返回具有两个元素的元组——用户输入和状态,无论用户在提供所需输入后单击“确定”(真)还是“取消”(假)按钮。

  1. getText():这用于从用户那里获取文本值。
  2. getInt():用于从用户那里获取整数值。
  3. getDouble():用于从用户那里获取 Double 值。
  4. 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_())


输出:

单击“继续”按钮。

给出细节。

确认消息以及用户数据。