PyQt - Widget QInputDialog

Il s'agit d'une boîte de dialogue préconfigurée avec un champ de texte et deux boutons, OK et Annuler. La fenêtre parente recueille l'entrée dans la zone de texte après que l'utilisateur clique sur le bouton OK ou appuie sur Entrée.

L'entrée utilisateur peut être un nombre, une chaîne ou un élément de la liste. Une étiquette demandant à l'utilisateur ce qu'il doit faire est également affichée.

La classe QInputDialog a les méthodes statiques suivantes pour accepter l'entrée de l'utilisateur -

N ° Sr. Méthodes et description
1

getInt()

Crée une boîte à double flèche pour un nombre entier

2

getDouble()

La boîte de spinner avec un nombre à virgule flottante peut être entrée

3

getText()

Un champ d'édition de ligne simple pour saisir du texte

4

getItem()

Une zone de liste déroulante dans laquelle l'utilisateur peut choisir un élément

Exemple

L'exemple suivant implémente la fonctionnalité de dialogue d'entrée. La fenêtre de niveau supérieur comporte trois boutons. Leur signal clicked () fait apparaître InputDialog via les slots connectés.

items = ("C", "C++", "Java", "Python")

item, ok = QInputDialog.getItem(self, "select input dialog", 
   "list of languages", items, 0, False)
	
   if ok and item:
      self.le.setText(item)
		
   def gettext(self):
      text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
      if ok:
         self.le1.setText(str(text))
			
   def getint(self):
      num,ok = QInputDialog.getInt(self,"integer input dualog","enter a number")
		
      if ok:
         self.le2.setText(str(num))

Le code complet est le suivant -

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class inputdialogdemo(QWidget):
   def __init__(self, parent = None):
      super(inputdialogdemo, self).__init__(parent)
		
      layout = QFormLayout()
      self.btn = QPushButton("Choose from list")
      self.btn.clicked.connect(self.getItem)
		
      self.le = QLineEdit()
      layout.addRow(self.btn,self.le)
      self.btn1 = QPushButton("get name")
      self.btn1.clicked.connect(self.gettext)
		
      self.le1 = QLineEdit()
      layout.addRow(self.btn1,self.le1)
      self.btn2 = QPushButton("Enter an integer")
      self.btn2.clicked.connect(self.getint)
		
      self.le2 = QLineEdit()
      layout.addRow(self.btn2,self.le2)
      self.setLayout(layout)
      self.setWindowTitle("Input Dialog demo")
		
   def getItem(self):
      items = ("C", "C++", "Java", "Python")
		
      item, ok = QInputDialog.getItem(self, "select input dialog", 
         "list of languages", items, 0, False)
			
      if ok and item:
         self.le.setText(item)
			
   def gettext(self):
      text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
		
      if ok:
         self.le1.setText(str(text))
			
   def getint(self):
      num,ok = QInputDialog.getInt(self,"integer input dualog","enter a number")
		
      if ok:
         self.le2.setText(str(num))
			
def main(): 
   app = QApplication(sys.argv)
   ex = inputdialogdemo()
   ex.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   main()

Le code ci-dessus produit la sortie suivante -