Exercice 8
Question 1 : Votre tâche consiste à générer un fichier python appelé "combobox-pyqt.ui" en utilisant l'éditeur visuel Qt Designer. Ce fichier doit définir une fenêtre qui invite l'utilisateur à sélectionner une option de la liste combobox. Ensuite, la fenêtre doit afficher le résultat de la sélection, comme illustré dans la figure ci-dessous:
Notez qu'à ce stade, nous ne créons pas encore l'action associée au bouton de commande!
Question2 : Après avoir créé le fichier "combobox-pyqt.ui", vous devez le convertir en un fichier Python nommé "combobox-pyqt.py" en utilisant la commande suivante :
1 |
pyuic5 -x "combobox-pyqt.ui -o "combobox-pyqt.py |
Ensuite, vous devez créer une méthode appelée "combobox_select()" et l'associer à l'évenement de sélection du widget combobox. Cette méthode doit afficher le résultat de la sélection sur le Qlabel "label_result".
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(395, 176) self.label = QtWidgets.QLabel(Form) self.label.setGeometry(QtCore.QRect(10, 20, 111, 20)) self.label.setObjectName("label") self.comboBox = QtWidgets.QComboBox(Form) self.comboBox.setGeometry(QtCore.QRect(130, 20, 211, 22)) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") # associer la méthode action() à la liste combobox self.comboBox.currentIndexChanged.connect(self.combobox_select) #création du label qui affiche le résultat self.label_result = QtWidgets.QLabel(Form) self.label_result.setGeometry(QtCore.QRect(130, 120, 231, 16)) self.label_result.setObjectName("label_result") self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "Select your OS system ")) self.comboBox.setItemText(0, _translate("Form", "Windows 11")) self.comboBox.setItemText(1, _translate("Form", "Linux")) self.comboBox.setItemText(2, _translate("Form", "Mac OS")) self.comboBox.setItemText(3, _translate("Form", "Android")) self.label_result.setText(_translate("Form", "You have selected ...")) def combobox_select(self): selected_element = self.comboBox.currentText() self.label_result.setText("You have selected : " + selected_element) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_()) |
Younes Derfoufi
CRMEF OUJDA