Шаг 132.
Библиотека PyQt5. Списки и таблицы. Раскрывающийся список. Добавление, изменение и удаление элементов

    На этом шаге мы методы, используемые для выполнения указанных операций.

    Для добавления, изменения, удаления и получения значения элементов предназначены следующие методы из класса QComboBox:

    В заключение приведем небольшой пример, иллюстрирующий использование некоторых из перечисленных методов.


Рис.1. Результат работы приложения

    Текст приложения:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import sys
# Обработчик нажатия первой кнопки
def on_clicked1():
    cbox.addItem(ledit.text()) 
    ledit.clear()            # Очистка строки
# Обработчик нажатия второй кнопки    
def on_clicked2():
    n = cbox.currentIndex()  # Номер текущего элемента
    cbox.removeItem(n)       # Удалить элемент с указанным номером
    
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("Пример использования QComboBox")
# Создание компонентов
cbox = QtWidgets.QComboBox()
ledit = QtWidgets.QLineEdit()
label1 = QtWidgets.QLabel("Список")
label2 = QtWidgets.QLabel("Строка для ввода")
# Создание кнопок и назначение обработчиков
button1 = QtWidgets.QPushButton("Добавить в список")
button1.clicked.connect(on_clicked1)
button2 = QtWidgets.QPushButton("Удалить текущий элемент")
button2.clicked.connect(on_clicked2)
# Помещение компонентов в контейнеры
vbox1 = QtWidgets.QVBoxLayout()
vbox1.addWidget(label1)
vbox1.addWidget(cbox)
vbox2 = QtWidgets.QVBoxLayout()
vbox2.addWidget(label2)
vbox2.addWidget(ledit)
# Размещение компонентов и контейнеров по сетке
grid = QtWidgets.QGridLayout()
grid.addLayout(vbox1, 0, 0)
grid.addWidget(button1, 0, 1)
grid.addLayout(vbox2, 1, 0)
grid.addWidget(button2, 1, 1)
# Добавление сетки в окно и показ окна
window.setLayout(grid)
window.resize(300,150)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

    На следующем шаге мы рассмотрим изменение параметров списка.




Предыдущий шаг Содержание Следующий шаг