Python

Как да използваме PyQt QComboBox

Как да използваме PyQt QComboBox

A ComboBox се използва за избор на един елемент от списък с елементи, подобно на радио бутона. The QComboBox клас на PyQt се използва за създаване на падащи списъци с помощта на Python скрипт. Той извежда списък с елементи, които потребителят да избере. Елементите на ComboBox могат да се добавят, променят и премахват с помощта на скрипта. Могат да бъдат избрани множество елементи като бутона CheckBox от списъка с елементи от ComboBox, след което се нарича ListBox. Този урок ви показва как да използвате QComboBox за създаване на падащ списък в Python.

Методи на QComboBox

Класът QComboBox съдържа много методи за изпълнение на различни задачи, свързани с ComboBox. Някои от най-често използваните методи от този клас са описани по-долу:

Име на метода Предназначение
броя() Използва се за преброяване на общия брой елементи в списъка.
Добавете артикул() Използва се за добавяне на единичен нов елемент към списъка.
addItems () Използва се за добавяне на множество елементи в списъка.
itemText () Използва се за четене на текста на определен елемент въз основа на индекс.
setItemText () Използва се за задаване на текста на определен елемент въз основа на индекс.
currentText () Използва се за четене на текста на избрания елемент.
currentIndex () Използва се за четене на индекса на избрания елемент.
изчисти () Използва се за изтриване на всички елементи от списъка.
подчертано () Използва се, когато елемент от списъка е маркиран.
активиран () Използва се, когато даден елемент е избран от потребителя.
currentIndexChanged () Използва се, когато елементът в списъка се е променил.

Използване на ComboBox

Следващите раздели предоставят примери, които обясняват някои различни приложения на ComboBox с помощта на модула QComboBox на библиотеката PyQt.

Пример 1: Създайте прост падащ списък

Този пример ви показва как да създадете прост падащ списък с помощта на класа QComboBox. Тук се създава падащ списък от пет елемента и е прикачен към персонализирана функция, която ще отпечата избраната стойност от списъка. Един етикет се използва във функцията на падащия списък за показване на статичен текст, а друг етикет се използва под падащия списък, за да покаже избраната стойност.

# Импортирайте необходимите модули
импортиране на sys
от PyQt5.Импортиране на QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Декларирайте класа, за да създадете ComboBox
клас ComboExample (QWidget):
def __init __ (самостоятелно):
супер ().__в него__()
# Поставете етикета преди ComboBox
себе си.topLabel = QLabel ('Изберете вашия любим език за програмиране:', самостоятелно)
# Определете списъка с елементи
combobox = QComboBox (самостоятелно)
комбобокс.addItem ('PHP')
комбобокс.addItem ('Python')
комбобокс.addItem ('Perl')
комбобокс.addItem ('Баш')
комбобокс.addItem ('Java')
# Задайте етикета след ComboBox
себе си.bottomLabel = QLabel (", самостоятелно)
себе си.bottomLabel.AdjuSize ()
# Определете полето за променливо оформление
v_layout = QVBoxLayout ()
v_layout.addWidget (самостоятелно.topLabel)
v_layout.addWidget (комбобокс)
v_layout.addWidget (самостоятелно.bottomLabel)
# Извикайте персонализирания метод, ако е избран елемент
комбобокс.активиран [str].свързване (самостоятелно.onSelected)
# Задайте конфигурациите за прозореца
себе си.setContentsMargins (20, 20, 20, 20)
себе си.setLayout (v_layout)
себе си.преместване (800, 300)
себе си.setWindowTitle ('Използване на ComboBox')
# Потребителска функция за отчитане на стойността на избрания елемент
def onSelected (самостоятелно, txtVal):
txtVal = "\ nИзбрали сте:" + txtVal
себе си.bottomLabel.setText (txtVal)
# Създайте обект на приложение и изпълнете приложението
app = QApplication (sys.argv)
combobox = ComboExample ()
комбобокс.покажи ()
ап.exec ()

Ако потребителят щракне върху падащия списък след изпълнение на скрипта, ще се появи следният списък.

Ако потребителят избере стойността Баш от падащия списък стойността на втория етикет ще бъде променена на 'Избрахте: Баш.'

Пример 2: Създайте ComboBox, като използвате списъка

В предишния пример падащият списък е създаден със статични данни, използвайки метода addItem () на класа QComboBox. Този пример ви показва как да добавите множество елементи в падащия списък, като дефинирате списък на Python. Първо, ще добавим статичен текст към първия елемент от падащия списък, използвайки метода addItem (). След това ще дефинираме списък от пет елемента в скрипта и ще добавим тези елементи към падащия списък, използвайки метода addItems (). Потребителска функция е прикачена към падащия списък, за да покаже съобщението в етикета въз основа на избора на потребителя.

# Импортирайте необходимите модули
импортиране на sys
от PyQt5.Внос на QtWidgets *
# Декларирайте класа, за да създадете комбобокс, като използвате данните от списъка
клас ComboExample (QMainWindow):
def __init __ (самостоятелно):
супер ().__в него__()
# Задайте заглавието на прозореца
себе си.setWindowTitle ("ComboBox с данни от списъка")
# Задайте геометрията на прозореца
себе си.setGeometry (100, 100, 350, 150)
# Създайте комбобокс
себе си.combobox = QComboBox (самостоятелно)
# Задайте геометрията за комбинираното поле
себе си.комбобокс.setGeometry (30, 30, 200, 30)
# Определете елементите от списъка за комбинираното поле
src_engines = ["google.com "," yahoo.com "," попитайте.com "," baidu.com "," yandex.com "]
# Активирайте опцията за редактиране на комбобокса
себе си.комбобокс.setEditable (Вярно)
# Задайте първия елемент за комбинираното поле
себе си.комбобокс.addItem ("Избор на търсачка")
# Добавете множество елементи в комбинираното поле, като използвате списък
себе си.комбобокс.addItems (src_engines)
# Определете етикета в долната част на комбинираното поле, за да предоставите съобщение за потребителя
себе си.msgLabel = QLabel (", самостоятелно)
# Задайте геометрията на етикета
себе си.msgLabel.setGeometry (30, 60, 290, 60)
# Извикайте персонализираната функция, когато е избран елемент
себе си.комбобокс.активиран [str].свързване (самостоятелно.onClicked)
# Преместете позицията на прозореца
себе си.преместване (800, 400)
# Показване на прозореца
себе си.покажи ()
# Определете метод за обработка на събитието за щракване на Combobox
def onClicked (self, val):
# Проверете дали някой елемент е избран от потребителя или не
ако val == "Изберете търсачка":
message = "Не сте избрали нищо."
друго:
message = "Любимата ви търсачка е" + val
# Показване на текста на съобщението в етикета
себе си.msgLabel.setText (съобщение)
# Показване на съобщението в конзолата
печат (съобщение)
# Създайте обекта на приложението
app = QApplication (sys.argv)
# Създайте обект от обекта на класа
combo = ComboExample ()
# Изпълнете приложението
ап.exec ()

Ако потребителят щракне върху падащия списък след изпълнение на скрипта, ще се появи следният списък.

Ако потребителят избере някой елемент с изключение на първия елемент от падащия списък, избраната стойност ще се покаже в етикета чрез комбиниране с другия текст.

Ако потребителят избере първия елемент от падащия списък, тогава стойността, 'Не сте избрали нищоще бъде показано в етикета.

Заключение

Тази статия ви показа как да създавате и използвате падащи списъци в Python с помощта на QComboBox клас, използвайки прости примери, за да ви помогне да разберете по-добре използването на този клас.

Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...