Python PyQt comboBox example
Python PyQt Connecting Signals to Slots: Exercise-5 with Solution
Write a Python program that creates a combo box with different items. When you select an item from the list, it should appear somewhere on the screen immediately. Use the PyQt module.
From doc.qt.io:
QApplication Class: The QApplication class manages the GUI application's control flow and main settings.
QWidget Class: The QWidget class is the base class of all user interface objects.
QComboBox Class: The QComboBox widget is a combined button and popup list.
QLabel Class: The QLabel widget provides a text or image display.
QVBoxLayout Class: The QVBoxLayout class lines up widgets vertically.
Sample Solution:
Python Code:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QLabel, QVBoxLayout
def main():
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Combo Box Example")
window.setGeometry(100, 100, 400, 200) # (x, y, width, height)
layout = QVBoxLayout()
# Create a QComboBox widget
combo_box = QComboBox(window)
combo_box.addItem("Python")
combo_box.addItem("Java")
combo_box.addItem("C++")
layout.addWidget(combo_box)
# Create a QLabel to display the selected item
label = QLabel("Selected Item: ", window)
layout.addWidget(label)
# Connect the combo box's currentIndexChanged signal to update_label slot
def update_label():
selected_item = combo_box.currentText()
label.setText("Selected Item: " + selected_item)
combo_box.currentIndexChanged.connect(update_label)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Explanation:
In the exercise above -
- Import the necessary modules from PyQt5.
- Create a PyQt application and a main window.
- Create a "QComboBox" widget called combo_box and add three items to it.
- Create a "QLabel" widget called label to display the selected item.
- Define a slot function called "update_label()" that updates the label text with the currently selected item from the combo box.
- Connect the "currentIndexChanged" signal of the combo box to the "update_label()" slot function, so that the label is updated whenever the selection changes.
- At last, we display the PyQt application's main window and start its event loop.
Output:
Flowchart:
Python Code Editor:
Previous: Python PyQt slider application.
Next: Python PyQt button click example.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/python-exercises/pyqt/python-pyqt-connecting-signals-to-slots-exercise-5.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics