Python

Ako používať PyQt QComboBox

Ako používať PyQt QComboBox

A ComboBox sa používa na výber jednej položky zo zoznamu položiek, podobne ako prepínač. The QComboBox trieda PyQt sa používa na vytváranie rozbaľovacích zoznamov pomocou skriptu Python. Vyvoláva zoznam položiek, ktoré si užívateľ môže zvoliť. Položky ComboBoxu je možné pridávať, meniť a odstraňovať pomocou skriptu. Je možné zvoliť viac položiek, napríklad tlačidlo CheckBox zo zoznamu položiek v ComboBoxe, potom sa nazýva ListBox. Tento tutoriál vám ukáže, ako používať QComboBox na vytvorenie rozbaľovacieho zoznamu v Pythone.

Metódy QComboBox

Trieda QComboBox obsahuje veľa metód na vykonávanie rôznych úloh týkajúcich sa ComboBoxu. Niektoré z bežne používaných metód tejto triedy sú opísané nižšie:

Názov metódy Účel
count () Používa sa na spočítanie celkového počtu položiek v zozname.
pridať položku() Používa sa na pridanie jednej novej položky do zoznamu.
addItems () Používa sa na pridanie viacerých položiek do zoznamu.
itemText () Používa sa na čítanie textu konkrétnej položky na základe indexu.
setItemText () Slúži na nastavenie textu konkrétnej položky na základe indexu.
currentText () Používa sa na čítanie textu vybranej položky.
currentIndex () Slúži na načítanie indexu vybratej položky.
jasný() Používa sa na odstránenie všetkých položiek zo zoznamu.
zvýraznené() Používa sa, keď je zvýraznená položka v zozname.
aktivované () Používa sa, keď používateľ vyberie položku.
currentIndexChanged () Používa sa, keď sa zmenila položka v zozname.

Používanie ComboBoxu

Nasledujúce časti poskytujú príklady, ktoré vysvetľujú niektoré rôzne použitia ComboBoxu pomocou modulu QComboBox knižnice PyQt.

Príklad 1: Vytvorenie jednoduchého rozbaľovacieho zoznamu

Tento príklad ukazuje, ako vytvoriť jednoduchý rozbaľovací zoznam pomocou triedy QComboBox. Tu sa vytvorí rozbaľovací zoznam piatich prvkov a je pripojený k vlastnej funkcii, ktorá vytlačí vybratú hodnotu zo zoznamu. Jeden štítok sa používa vo funkcii rozbaľovacieho zoznamu na zobrazenie statického textu a ďalší štítok sa používa pod rozbaľovacím zoznamom na zobrazenie vybratej hodnoty.

# Importujte potrebné moduly
import sys
z PyQt5.Import QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Deklarovať triedu na vytvorenie ComboBoxu
ComboExample triedy (QWidget):
def __init __ (self):
Super().__init __ ()
# Nastavte štítok pred ComboBoxom
ja.topLabel = QLabel ('Vyberte si svoj obľúbený programovací jazyk:', self)
# Definujte kombobox s položkami
combobox = QComboBox (vlastné)
kombobox.addItem ('PHP')
kombobox.addItem ('Python')
kombobox.addItem ('Perl')
kombobox.addItem ('Bash')
kombobox.addItem ('Java')
# Nastaviť štítok za ComboBoxom
ja.bottomLabel = QLabel (", self)
ja.bottomLabel.adjustSize ()
# Definujte pole pre grafické rozloženie
v_layout = QVBoxLayout ()
v_layout.addWidget (vlastné.topLabel)
v_layout.addWidget (kombobox)
v_layout.addWidget (vlastné.bottomLabel)
# Ak je vybraná ktorákoľvek položka, zavolajte vlastnú metódu
kombobox.aktivované [str].spojiť (seba.onSelected)
# Nastavte konfiguráciu okna
ja.setContentsMargins (20, 20, 20, 20)
ja.setLayout (v_layout)
ja.ťah (800, 300)
ja.setWindowTitle ('Použitie ComboBoxu')
# Vlastná funkcia na načítanie hodnoty vybranej položky
def onSelected (self, txtVal):
txtVal = "\ nVybrali ste:" + txtVal
ja.bottomLabel.setText (txtVal)
# Vytvorte objekt aplikácie a spustite ju
app = QApplication (sys.argv)
combobox = ComboExample ()
kombobox.šou()
aplikácia.exec ()

Ak používateľ po vykonaní skriptu klikne na rozbaľovací zoznam, zobrazí sa nasledujúci zoznam.

Ak užívateľ vyberie hodnotu Bash z rozbaľovacieho zoznamu sa hodnota druhého štítku zmení na 'Vybrali ste: Bash.

Príklad 2: Vytvorenie ComboBoxu pomocou zoznamu

V predchádzajúcom príklade bol rozbaľovací zoznam vytvorený so statickými údajmi pomocou metódy addItem () triedy QComboBox. Tento príklad ukazuje, ako pridať viac položiek do rozbaľovacieho zoznamu definovaním zoznamu v jazyku Python. Najskôr pridáme statický text k prvej položke rozbaľovacieho zoznamu pomocou metódy addItem (). Ďalej v skripte definujeme zoznam piatich prvkov a tieto prvky pridáme do rozbaľovacieho zoznamu pomocou metódy addItems (). K rozbaľovaciemu zoznamu je pripojená vlastná funkcia na zobrazenie správy v menovke na základe výberu používateľa.

# Importujte potrebné moduly
import sys
z PyQt5.Import QtWidgets *
# Deklarujte triedu, aby vytvorila kombobox pomocou údajov zo zoznamu
trieda ComboExample (QMainWindow):
def __init __ (self):
Super().__init __ ()
# Nastavte titulok okna
ja.setWindowTitle ("ComboBox so zoznamom údajov")
# Nastavte geometriu okna
ja.setGeometry (100, 100, 350, 150)
# Vytvorte kombobox
ja.combobox = QComboBox (vlastné)
# Nastavte geometriu komboboxu
ja.kombobox.setGeometry (30, 30, 200, 30)
# Definujte položky zoznamu pre kombobox
src_engines = ["google.com "," yahoo.com "," opýtajte sa.com "," baidu.com "," yandex.com "]
# Povoľte možnosť s možnosťou úpravy v kombinovanom poli
ja.kombobox.setEditable (True)
# Nastavte prvú položku pre kombobox
ja.kombobox.addItem ("Vyberte vyhľadávací nástroj")
# Pridajte viac položiek do kombinovaného poľa pomocou zoznamu
ja.kombobox.addItems (src_engines)
# Definujte štítok v spodnej časti kombinovaného poľa, aby ste poskytli správu používateľovi
ja.msgLabel = QLabel (", sám)
# Nastavte geometriu štítku
ja.msgLabel.setGeometry (30, 60, 290, 60)
# Zavolajte užívateľskú funkciu, keď je vybraná ktorákoľvek položka
ja.kombobox.aktivované [str].spojiť (seba.onClicked)
# Posuňte polohu okna
ja.ťah (800, 400)
# Zobrazte okno
ja.šou()
# Definujte metódu spracovania udalosti kliknutia Comboboxu
def onClicked (self, val):
# Skontrolujte, či niektorá položka je vybratá používateľom alebo nie
if val == "Vyberte vyhľadávací nástroj":
message = "Nevybrali ste nič.„
inak:
message = "Váš obľúbený vyhľadávací nástroj je" + val
# Zobraziť text správy na štítku
ja.msgLabel.setText (správa)
# Zobrazte správu v konzole
tlač (správa)
# Vytvorte objekt aplikácie
app = QApplication (sys.argv)
# Vytvorte objekt triedy
combo = ComboExample ()
# Spustite aplikáciu
aplikácia.exec ()

Ak používateľ po vykonaní skriptu klikne na rozbaľovací zoznam, zobrazí sa nasledujúci zoznam.

Ak používateľ vyberie ľubovoľnú položku okrem prvej položky v rozbaľovacom zozname, potom sa vybratá hodnota zobrazí v označení kombináciou s iným textom.

Ak používateľ vyberie v rozbaľovacom zozname prvú položku, potom hodnotu „Nevybrali ste nič“sa zobrazí na štítku.

Záver

Tento článok vám ukázal, ako vytvoriť a používať rozbaľovacie zoznamy v Pythone pomocou QComboBox triedy pomocou jednoduchých príkladov, ktoré vám pomôžu lepšie pochopiť použitie tejto triedy.

Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...
WinMouse vám umožňuje prispôsobiť a vylepšiť pohyb ukazovateľa myši na počítači so systémom Windows
Ak chcete vylepšiť predvolené funkcie kurzora myši, použite freeware WinMouse. Pridáva ďalšie funkcie, ktoré vám pomôžu vyťažiť zo svojej skromnej myš...