Python

Kako uporabljati PyQt QComboBox

Kako uporabljati PyQt QComboBox

A ComboBox se uporablja za izbiro enega elementa s seznama elementov, podobno kot izbirni gumb. The QComboBox razred PyQt se uporablja za ustvarjanje spustnih seznamov s pomočjo skripta Python. Prikaže seznam elementov, ki jih mora uporabnik izbrati. Elemente ComboBoxa lahko dodate, spremenite in odstranite s pomočjo skripta. Na seznamu elementov v ComboBoxu lahko izberete več elementov, na primer gumb CheckBox, nato pa se imenuje ListBox. Ta vadnica vam prikazuje, kako s pomočjo QComboBox ustvariti spustni seznam v Pythonu.

QComboBox metode

Razred QComboBox vsebuje veliko metod za izvajanje različnih nalog, povezanih s ComboBoxom. Nekatere najpogosteje uporabljene metode tega razreda so opisane spodaj:

Ime metode Namen
štetje () Uporablja se za štetje skupnega števila elementov na seznamu.
addItem () Uporablja se za dodajanje enega novega elementa na seznam.
addItems () Uporablja se za dodajanje več elementov na seznam.
itemText () Uporablja se za branje besedila določenega predmeta na podlagi indeksa.
setItemText () Uporablja se za nastavitev besedila določenega predmeta na podlagi indeksa.
currentText () Uporablja se za branje besedila izbranega predmeta.
currentIndex () Uporablja se za branje indeksa izbranega predmeta.
jasno () Uporablja se za brisanje vseh elementov s seznama.
poudarjeno () Uporablja se, ko je element na seznamu označen.
aktivirano () Uporablja se, ko uporabnik izbere element.
currentIndexChanged () Uporablja se, če se je element na seznamu spremenil.

Uporaba ComboBox

Naslednji odseki ponujajo primere, ki pojasnjujejo nekatere različne uporabe ComboBoxa z uporabo modula QComboBox v knjižnici PyQt.

Primer 1: Ustvarite preprost spustni seznam

Ta primer prikazuje, kako ustvarite preprost spustni seznam z uporabo razreda QComboBox. Tu se ustvari spustni seznam petih elementov, ki je priložen funkciji po meri, ki bo natisnila izbrano vrednost s seznama. Ena nalepka se uporablja v funkciji spustnega seznama za prikaz statičnega besedila, druga pa pod spustnim seznamom za prikaz izbrane vrednosti.

# Uvozite potrebne module
uvoz sys
iz PyQt5.Uvoz QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Razglasite razred, da ustvarite ComboBox
razred ComboExample (QWidget):
def __init __ (samo):
super ().__v__()
# Oznako postavite pred ComboBox
sebe.topLabel = QLabel ('Izberite svoj najljubši programski jezik:', self)
# Določite kombinirano polje z elementi
combobox = QComboBox (samo)
combobox.addItem ('PHP')
combobox.addItem ('Python')
combobox.addItem ('Perl')
combobox.addItem ('Bash')
combobox.addItem ('Java')
# Oznako nastavite za ComboBox
sebe.bottomLabel = QLabel (", samo)
sebe.bottomLabel.prilagodite velikost ()
# Določite polje s spremenljivo postavitvijo
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.addWidget (kombinirano polje)
v_layout.addWidget (self.bottomLabel)
# Pokličite način po meri, če je izbran kateri koli element
combobox.aktivirano [str].povezati (samo.onSelected)
# Nastavite konfiguracije okna
sebe.setContentsMargins (20, 20, 20, 20)
sebe.setLayout (v_layout)
sebe.premakni (800, 300)
sebe.setWindowTitle ('Uporaba ComboBoxa')
# Funkcija po meri za branje vrednosti izbranega predmeta
def onSelected (self, txtVal):
txtVal = "\ nIzbrali ste:" + txtVal
sebe.bottomLabel.setText (txtVal)
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
combobox = ComboExample ()
combobox.pokaži ()
app.exec ()

Če uporabnik po izvedbi skripta klikne spustni seznam, se prikaže naslednji seznam.

Če uporabnik izbere vrednost Baš s spustnega seznama bo vrednost druge oznake spremenjena v 'Izbrali ste: Bash."

2. primer: Ustvarite ComboBox s pomočjo seznama

V prejšnjem primeru je bil spustni seznam ustvarjen s statičnimi podatki z uporabo metode addItem () razreda QComboBox. V tem primeru je prikazano, kako na spustni seznam dodate več elementov z definiranjem seznama Python. Najprej bomo dodali statično besedilo prvemu elementu spustnega seznama z uporabo metode addItem (). Nato bomo v skriptu definirali seznam petih elementov in jih dodali na spustni seznam z uporabo metode addItems (). Na spustni seznam je priložena funkcija po meri, ki prikazuje sporočilo v nalepki na podlagi izbire uporabnika.

# Uvozite potrebne module
uvoz sys
iz PyQt5.QtWidgets import *
# Razredite razred za ustvarjanje kombiniranega polja s pomočjo podatkov seznama
razred ComboExample (QMainWindow):
def __init __ (samo):
super ().__v__()
# Nastavite naslov okna
sebe.setWindowTitle ("ComboBox s podatki s seznama")
# Nastavite geometrijo okna
sebe.setGeometry (100, 100, 350, 150)
# Ustvari kombinirano polje
sebe.combobox = QComboBox (samo)
# Nastavite geometrijo kombiniranega polja
sebe.combobox.setGeometry (30, 30, 200, 30)
# Določite elemente seznama za kombinirano polje
src_engines = ["google.com "," yahoo.com "," vprašajte.com "," baidu.com "," yandex.com "]
# Omogočite možnost urejanja kombiniranega polja
sebe.combobox.setEditable (True)
# Nastavite prvi element za kombinirano polje
sebe.combobox.addItem ("Izberi iskalnik")
# S kombiniranim seznamom dodajte več elementov s pomočjo seznama
sebe.combobox.addItems (src_engines)
# Določite oznako na dnu kombiniranega polja, da bo uporabniku sporočilo
sebe.msgLabel = QLabel (", samo)
# Nastavite geometrijo nalepke
sebe.msgLabel.setGeometry (30, 60, 290, 60)
# Pokličite funkcijo po meri, ko je izbran kateri koli element
sebe.combobox.aktivirano [str].povezati (samo.onClicked)
# Premaknite položaj okna
sebe.premakni (800, 400)
# Prikažite okno
sebe.pokaži ()
# Določite metodo za obdelavo dogodka klika Comboboxa
def onClicked (self, val):
# Preverite, ali je kateri koli element izbral uporabnik ali ne
če je val == "Izberi iskalnik":
message = "Izbrali niste ničesar."
sicer:
message = "Vaš najljubši iskalnik je" + val
# Prikažite besedilo sporočila v nalepki
sebe.msgLabel.setText (sporočilo)
# Prikažite sporočilo v konzoli
natisni (sporočilo)
# Ustvarite objekt aplikacije
app = QApplication (sys.argv)
# Ustvarite objekt predmeta razreda
combo = ComboExample ()
# Izvedite aplikacijo
app.exec ()

Če uporabnik po izvedbi skripta klikne spustni seznam, se prikaže naslednji seznam.

Če uporabnik izbere kateri koli element razen prvega elementa na spustnem seznamu, bo izbrana vrednost prikazana v nalepki s kombiniranjem z drugim besedilom.

Če uporabnik izbere prvi element na spustnem seznamu, potem je vrednost, 'Nič niste izbralibo prikazano na nalepki.

Zaključek

Ta članek vam je pokazal, kako ustvarite in uporabite spustne sezname v Pythonu z uporabo QComboBox s preprostimi primeri, s katerimi boste lažje razumeli uporabo tega predavanja.

OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...