Python

Kuidas kasutada PyQt QComboBoxi

Kuidas kasutada PyQt QComboBoxi

A Kombineeritud kast kasutatakse üksuste loendist üksuse valimiseks, sarnaselt raadionupuga. The QComboBox klassi PyQt kasutatakse rippmenüüde loomiseks Pythoni skripti abil. See avab loendi üksustest, mida kasutaja saab valida. ComboBoxi üksusi saab skripti abil lisada, muuta ja eemaldada. ComboBoxi üksuste loendist saab valida mitu üksust nagu nupp CheckBox, seejärel nimetatakse seda nimeks ListBox. See õpetus näitab, kuidas kasutada QComboBoxi Pythonis rippmenüü loomiseks.

QComboBoxi meetodid

QComboBox klass sisaldab palju meetodeid erinevate ComboBoxiga seotud ülesannete täitmiseks. Mõned selle klassi sagedamini kasutatavad meetodid on kirjeldatud allpool:

Meetodi nimi Eesmärk
loenda () Kasutatakse loendis olevate üksuste koguarvu loendamiseks.
addItem () Kasutatakse loendisse ühe uue üksuse lisamiseks.
addItems () Kasutatakse loendisse mitme üksuse lisamiseks.
itemText () Kasutatakse indeksi põhjal konkreetse üksuse teksti lugemiseks.
setItemText () Kasutatakse konkreetse üksuse teksti määramiseks indeksi alusel.
currentText () Kasutatakse valitud üksuse teksti lugemiseks.
currentIndex () Kasutatakse valitud üksuse indeksi lugemiseks.
selge () Kasutatakse kõigi üksuste kustutamiseks loendist.
esile tõstetud () Kasutatakse, kui loendis olev üksus on esile tõstetud.
aktiveeritud () Kasutatakse, kui kasutaja valib üksuse.
currentIndexChanged () Kasutatakse siis, kui loendis olev üksus on muutunud.

ComboBoxi kasutamine

Järgmistes jaotistes on toodud näited, mis selgitavad ComboBoxi erinevaid kasutusviise PyQt teegi QComboBox mooduli abil.

Näide 1: looge lihtne rippmenüü

See näide näitab, kuidas luua QComboBox klassi abil lihtne rippmenüü. Siin luuakse viiest elemendist rippmenüü ja see lisatakse kohandatud funktsioonile, mis prindib loendist valitud väärtuse. Üht silti kasutatakse rippmenüü funktsioonis staatilise teksti kuvamiseks ja teist silti kasutatakse rippmenüü all valitud väärtuse kuvamiseks.

# Impordi vajalikud moodulid
impordi süsteem
alates PyQt5.QtWidgetide import (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Deklareerige klass ComboBoxi loomiseks
klass ComboExample (QWidget):
def __init __ (ise):
Super().__selles__()
# Määrake silt enne ComboBoxi
ise.topLabel = QLabel ('Valige oma lemmik programmeerimiskeel:', ise)
# Määrake liitkast üksustega
combobox = QComboBox (ise)
kombokast.addItem ('PHP')
kombokast.addItem ('Python')
kombokast.addItem ('Perl')
kombokast.addItem ('Bash')
kombokast.addItem ('Java')
# Määrake silt pärast ComboBoxi
ise.bottomLabel = QLabel (", ise)
ise.alt silt.adjustSize ()
# Määratlege väravalise paigutuse kast
v_layout = QVBoxLayout ()
v_layout.addWidget (ise.topLabel)
v_layout.addWidget (ühendkast)
v_layout.addWidget (ise.bottomLabel)
# Helistage kohandatud meetodile, kui mõni üksus on valitud
kombokast.aktiveeritud [str].ühendama (ise.onSelected)
# Määrake akna konfiguratsioonid
ise.setContentsMargins (20, 20, 20, 20)
ise.setLayout (v_layout)
ise.liikuma (800, 300)
ise.setWindowTitle ('ComboBoxi kasutamine')
# Kohandatud funktsioon valitud üksuse väärtuse lugemiseks
def onSelected (ise, txtVal):
txtVal = "\ nOled valinud:" + txtVal
ise.alt silt.setText (txtVal)
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
combobox = ComboExample ()
kombokast.näita ()
rakendus.exec ()

Kui kasutaja klõpsab pärast skripti käivitamist rippmenüüd, kuvatakse järgmine loend.

Kui kasutaja valib väärtuse Bash rippmenüüst muudetakse teise sildi väärtuseks väärtus "Olete valinud: Bash."

Näide 2: loendi abil saate luua ComboBoxi

Eelmises näites loodi rippmenüü staatiliste andmetega, kasutades klassi QComboBox meetodit addItem (). See näide näitab, kuidas lisada rippmenüüsse mitu üksust, määratledes Pythoni loend. Esiteks lisame staatilise teksti rippmenüü esimesele üksusele meetodi addItem () abil. Järgmisena määratleme skripti viie elemendi loendi ja lisame need elemendid rippmenüüsse meetodi addItems () abil. Rippmenüüle on lisatud kohandatud funktsioon, et kuvada sõnum sildil kasutaja valiku põhjal.

# Impordi vajalikud moodulid
impordi süsteem
alates PyQt5.QtWidgetide import *
# Deklareerige klass loendi andmete abil liitkasti loomiseks
klass ComboExample (QMainWindow):
def __init __ (ise):
Super().__selles__()
# Määrake akna jupp
ise.setWindowTitle ("ComboBox loendi andmetega")
# Määrake akna geomeetria
ise.setGeometry (100, 100, 350, 150)
# Looge liitekast
ise.combobox = QComboBox (ise)
# Määrake liitkasti geomeetria
ise.kombokast.setGeometry (30, 30, 200, 30)
# Määrake liitkasti loendiüksused
src_engines = ["google.com "," yahoo.com "," küsi.com "," baidu.com "," yandex.com "]
# Lubage liitkasti redigeeritav valik
ise.kombokast.setEditable (tõene)
# Määrake liitkasti esimene element
ise.kombokast.addItem ("Valige otsingumootor")
# Lisage loendit kasutades lahtrisse mitu üksust
ise.kombokast.addItems (src_engines)
# Kasutajale sõnumi edastamiseks määrake liitkasti allservas silt
ise.msgLabel = QLabel (", ise)
# Määrake sildi geomeetria
ise.msgLabel.setGeometry (30, 60, 290, 60)
# Helistage kohandatud funktsioonile, kui mõni üksus on valitud
ise.kombokast.aktiveeritud [str].ühendama (ise.onClicked)
# Liigutage akna asukohta
ise.liikuma (800, 400)
# Kuva aken
ise.näita ()
# Määratlege Comboboxi klõpsamise sündmuse käitlemise meetod
def onClicked (ise, val):
# Kontrollige, kas kasutaja on valinud üksuse või mitte
if val == "Valige otsingumootor":
message = "Te pole midagi valinud."
muu:
message = "Teie lemmikotsingumootor on" + val
# Kuva sõnumis tekst sildis
ise.msgLabel.setText (sõnum)
# Kuva sõnum konsoolis
print (sõnum)
# Looge rakenduse objekt
app = QApplication (sys.argv)
# Loo klassiobjekti objekt
combo = ComboExample ()
# Rakenduse käivitamine
rakendus.exec ()

Kui kasutaja klõpsab pärast skripti käivitamist rippmenüüd, kuvatakse järgmine loend.

Kui kasutaja valib rippmenüüst mis tahes üksuse, välja arvatud esimene üksus, kuvatakse valitud väärtus sildil, kombineerides seda muu tekstiga.

Kui kasutaja valib rippmenüüst esimese üksuse, siis väärtus 'Te pole midagi valinud"kuvatakse sildil.

Järeldus

See artikkel näitas teile, kuidas Pythonis rippmenüüid luua ja kasutada QComboBox klass, kasutades lihtsaid näiteid, mis aitavad teil selle klassi kasutamist paremini mõista.

OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...