Cuadro de diálogo de entrada de PyQt5 | Python

PyQt5 proporciona una clase llamada QInputDialog que se utiliza para recibir información del usuario. En la mayor parte de la aplicación, llega una situación en la que el usuario debe ingresar algunos datos y, por lo tanto, se necesita un cuadro de diálogo de entrada. La entrada puede ser de tipo String o Texto, Entero, Doble y elemento.
Métodos usados: 
estos métodos devuelven una tupla que tiene dos elementos: entrada del usuario y estado, ya sea que el usuario haya hecho clic en el botón «Aceptar» (verdadero) o «Cancelar» (falso) después de proporcionar la entrada deseada.

  1. getText(): Esto se usa para tomar el valor de texto del usuario. 
     
  2. getInt(): Esto se usa para tomar un valor entero del usuario. 
     
  3. getDouble(): Esto se usa para tomar el valor Doble del usuario. 
     
  4. getItem(): Esto se utiliza para tomar el elemento seleccionado de opción múltiple por parte del usuario. 
     

Ejemplo:

Vamos a crear una aplicación simple usando QInputDialog donde aparecerá una ventana principal con un botón «Continuar». Después de hacer clic en ese botón, se abrirán varios cuadros de diálogo de entrada que le pedirán el nombre, el rol, el CGPA y el lenguaje de programación aprendido de una lista de lenguajes. 
Finalmente, la ventana principal dará un mensaje de confirmación junto con los detalles proporcionados por el usuario.
A continuación se muestra el código: 

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_())

Producción:

Haga clic en el botón «Continuar». 
 

Da los detalles. 

  •  

  •  

  •  

  •  

Mensaje de confirmación junto con los datos del usuario. 

Publicación traducida automáticamente

Artículo escrito por abhilekhnathdas111 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *