Krajta

Jak používat PyQt QComboBox

Jak používat PyQt QComboBox

A ComboBox se používá k výběru jedné položky ze seznamu položek, podobně jako přepínač. The QComboBox třída PyQt se používá k vytváření rozevíracích seznamů pomocí skriptu Python. Vyvolá seznam položek, které si uživatel může vybrat. Položky ComboBoxu lze přidávat, měnit a odebírat pomocí skriptu. Lze vybrat více položek, jako je tlačítko CheckBox ze seznamu položek v ComboBoxu, pak se nazývá ListBox. Tento kurz vám ukáže, jak pomocí QComboBoxu vytvořit rozevírací seznam v Pythonu.

Metody QComboBox

Třída QComboBox obsahuje mnoho metod pro provádění různých úkolů souvisejících s ComboBox. Níže jsou popsány některé z běžněji používaných metod této třídy:

Název metody Účel
počet() Slouží k počítání celkového počtu položek v seznamu.
přidat položku() Slouží k přidání jedné nové položky do seznamu.
addItems () Slouží k přidání více položek do seznamu.
itemText () Slouží ke čtení textu konkrétní položky na základě indexu.
setItemText () Slouží k nastavení textu konkrétní položky na základě indexu.
currentText () Slouží ke čtení textu vybrané položky.
currentIndex () Slouží ke čtení indexu vybrané položky.
Průhledná() Slouží k odstranění všech položek ze seznamu.
zvýrazněno () Používá se, když je zvýrazněna položka v seznamu.
aktivováno () Používá se, když uživatel vybere položku.
currentIndexChanged () Používá se, když se položka v seznamu změnila.

Použití ComboBoxu

Následující části obsahují příklady, které vysvětlují různá použití ComboBoxu pomocí modulu QComboBox knihovny PyQt.

Příklad 1: Vytvoření jednoduchého rozevíracího seznamu

Tento příklad ukazuje, jak vytvořit jednoduchý rozevírací seznam pomocí třídy QComboBox. Zde je vytvořen rozevírací seznam pěti prvků a je připojen k vlastní funkci, která vytiskne vybranou hodnotu ze seznamu. Jeden štítek se používá ve funkci rozevíracího seznamu k zobrazení statického textu a další štítek se používá pod rozevíracím seznamem k zobrazení vybrané hodnoty.

# Importujte potřebné moduly
import sys
z PyQt5.Import QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Deklarovat třídu k vytvoření ComboBoxu
třída ComboExample (QWidget):
def __init __ (vlastní):
super ().__init __ ()
# Nastavit štítek před ComboBox
já.topLabel = QLabel ('Vyberte si svůj oblíbený programovací jazyk:', self)
# Definujte kombinovaný box s položkami
combobox = QComboBox (vlastní)
kombobox.addItem ('PHP')
kombobox.addItem ('Python')
kombobox.addItem ('Perl')
kombobox.addItem ('Bash')
kombobox.addItem ('Java')
# Nastavit štítek za ComboBox
já.bottomLabel = QLabel (", self)
já.bottomLabel.upravit velikost ()
# Definujte pole pro grafické rozložení
v_layout = QVBoxLayout ()
v_layout.addWidget (vlastní.topLabel)
v_layout.addWidget (combobox)
v_layout.addWidget (vlastní.bottomLabel)
# Pokud je vybrána libovolná položka, zavolejte vlastní metodu
kombobox.aktivováno [str].připojit (já.onSelected)
# Nastavte konfigurace okna
já.setContentsMargins (20, 20, 20, 20)
já.setLayout (v_layout)
já.tah (800, 300)
já.setWindowTitle ('Použití ComboBoxu')
# Vlastní funkce pro čtení hodnoty vybrané položky
def onSelected (self, txtVal):
txtVal = "\ nVybrali jste:" + txtVal
já.bottomLabel.setText (txtVal)
# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
combobox = ComboExample ()
kombobox.ukázat()
aplikace.exec ()

Pokud uživatel po provedení skriptu klikne na rozevírací seznam, zobrazí se následující seznam.

Pokud uživatel vybere hodnotu Bash z rozevíracího seznamu bude hodnota druhého štítku změněna na 'Vybrali jste: Bash.''

Příklad 2: Vytvoření ComboBoxu pomocí seznamu

V předchozím příkladu byl rozevírací seznam vytvořen se statickými daty pomocí metody addItem () třídy QComboBox. Tento příklad ukazuje, jak přidat více položek do rozevíracího seznamu definováním seznamu Pythonu. Nejprve přidáme statický text k první položce rozevíracího seznamu pomocí metody addItem (). Dále definujeme seznam pěti prvků ve skriptu a přidáme tyto prvky do rozevíracího seznamu pomocí metody addItems (). K rozevíracímu seznamu je připojena vlastní funkce, která zobrazí zprávu ve štítku na základě výběru uživatele.

# Importujte potřebné moduly
import sys
z PyQt5.Import QtWidgets *
# Deklarujte třídu k vytvoření kombinovaného pole pomocí dat seznamu
třída ComboExample (QMainWindow):
def __init __ (vlastní):
super ().__init __ ()
# Nastavte titulku okna
já.setWindowTitle ("ComboBox s daty seznamu")
# Nastavte geometrii okna
já.setGeometry (100, 100, 350, 150)
# Vytvořte combobox
já.combobox = QComboBox (vlastní)
# Nastavte geometrii kombinovaného pole
já.kombobox.setGeometry (30, 30, 200, 30)
# Definujte položky seznamu pro kombinovaný modul
src_engines = ["google.com "," yahoo.com "," zeptat se.com "," baidu.com "," yandex.com "]
# Povolte upravitelnou možnost kombinovaného pole
já.kombobox.setEditable (True)
# Nastavte první položku pro kombinovaný box
já.kombobox.addItem ("Vybrat vyhledávač")
# Přidejte více položek do kombinovaného pole pomocí seznamu
já.kombobox.addItems (src_engines)
# Definujte štítek ve spodní části kombinovaného pole, abyste uživateli poskytli zprávu
já.msgLabel = QLabel (", vlastní)
# Nastavte geometrii štítku
já.msgLabel.setGeometry (30, 60, 290, 60)
# Volání vlastní funkce, když je vybrána jakákoli položka
já.kombobox.aktivováno [str].připojit (já.onClicked)
# Přesuňte polohu okna
já.tah (800, 400)
# Zobrazte okno
já.ukázat()
# Definujte metodu zpracování události kliknutí Comboboxu
def onClicked (self, val):
# Zaškrtněte, zda uživatel vybere jakoukoli položku
if val == "Vybrat vyhledávač":
message = "Nevybrali jste nic."
jiný:
message = "Váš oblíbený vyhledávač je" + val
# Zobrazit text zprávy na štítku
já.msgLabel.setText (zpráva)
# Zobrazte zprávu v konzole
tisk (zpráva)
# Vytvořte objekt aplikace
aplikace = QApplication (sys.argv)
# Vytvořte objekt třídy objektu
combo = ComboExample ()
# Spusťte aplikaci
aplikace.exec ()

Pokud uživatel po provedení skriptu klikne na rozevírací seznam, zobrazí se následující seznam.

Pokud uživatel vybere v rozevíracím seznamu libovolnou položku kromě první položky, zobrazí se vybraná hodnota na štítku kombinací s dalším textem.

Pokud uživatel vybere první položku v rozevíracím seznamu, pak hodnotu, 'Nevybrali jste nic'se zobrazí na štítku.

Závěr

Tento článek vám ukázal, jak vytvořit a používat rozevírací seznamy v Pythonu pomocí QComboBox třídy pomocí jednoduchých příkladů, které vám pomohou lépe porozumět používání této třídy.

Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...
WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...