Piton

A PyQt QComboBox használata

A PyQt QComboBox használata

A ComboBox arra szolgál, hogy egy elemet kiválasszon az elemek listájából, hasonlóan a választógombhoz. A QComboBox A PyQt osztálya a legördülő listák létrehozására szolgál a Python szkript segítségével. Megjeleníti a felhasználó által kiválasztandó elemek listáját. A ComboBox elemei hozzáadhatók, módosíthatók és eltávolíthatók a szkript segítségével. Több elem is kiválasztható, például a CheckBox gomb a ComboBox elemlistájából, majd ListBox. Ez az oktatóanyag bemutatja, hogyan lehet a QComboBox segítségével létrehozni egy legördülő listát a Pythonban.

QComboBox módszerek

A QComboBox osztály számos módszert tartalmaz a ComboBoxhoz kapcsolódó különféle feladatok végrehajtására. Ennek az osztálynak a leggyakrabban alkalmazott módszereit az alábbiakban ismertetjük:

Módszer neve Célja
számol() A lista összes elemének számlálására szolgál.
addItem () Egyetlen új elem hozzáadására szolgál a listához.
addItems () Több elem hozzáadására szolgál a listához.
itemText () Egy adott elem szövegének elolvasására szolgál egy index alapján.
setItemText () Egy adott elem szövegének beállítására szolgál egy index alapján.
currentText () A kijelölt elem szövegének olvasására szolgál.
currentIndex () A kijelölt elem indexének elolvasására szolgál.
egyértelmű() Az összes elem törlésére szolgál a listáról.
kiemelve () Akkor használatos, ha a lista egyik elemét kiemelik.
aktív() Akkor használatos, ha a felhasználó kiválaszt egy elemet.
currentIndexChanged () Akkor használható, ha a lista eleme megváltozott.

ComboBox használat

A következő szakaszok példákat mutatnak be, amelyek bemutatják a ComboBox különböző felhasználási módjait a PyQt könyvtár QComboBox moduljának használatával.

1. példa: Hozzon létre egy egyszerű legördülő listát

Ez a példa bemutatja, hogyan lehet egyszerű legördülő listát létrehozni a QComboBox osztály használatával. Itt egy öt elemből álló legördülő lista jön létre, amely egy egyedi függvényhez kapcsolódik, amely kinyomtatja a kiválasztott értéket a listából. Az egyik címkét a legördülő lista funkciójában használják a statikus szöveg megjelenítésére, a másik címkét pedig a legördülő lista alatt használják a kiválasztott érték megjelenítésére.

# Importálja a szükséges modulokat
import sys
a PyQt5-ből.QtWidgetek importálása (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Nyissa meg az osztályt a ComboBox létrehozásához
osztály ComboExample (QWidget):
def __init __ (én):
szuper().__benne__()
# Állítsa be a címkét a ComboBox előtt
maga.topLabel = QLabel ('Válassza ki a kedvenc programozási nyelvét:', önmaga)
# Határozza meg a combobox elemekkel
combobox = QComboBox (self)
combobox.addItem ('PHP')
combobox.addItem ('Python')
combobox.addItem ('Perl')
combobox.addItem ('Bash')
combobox.addItem ('Java')
# Állítsa be a címkét a ComboBox után
maga.bottomLabel = QLabel (", én)
maga.bottomLabel.adjustSize ()
# Definiálja a kapuelrendezési mezőt
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.addWidget (combobox)
v_layout.addWidget (self.bottomLabel)
# Hívja meg az egyéni módszert, ha valamelyik elem ki van jelölve
combobox.aktivált [str].összekapcsolni (én.onSelected)
# Állítsa be az ablak konfigurációit
maga.setContentsMargins (20, 20, 20, 20)
maga.setLayout (v_layout)
maga.lépés (800, 300)
maga.setWindowTitle ('A ComboBox használata')
# Egyéni funkció a kiválasztott elem értékének beolvasására
def onSelected (self, txtVal):
txtVal = "\ nKiválasztotta:" + txtVal
maga.bottomLabel.setText (txtVal)
# Hozzon létre alkalmazásobjektumot és hajtsa végre az alkalmazást
app = QApplication (sys.argv)
combobox = ComboExample ()
combobox.előadás()
kb.exec ()

Ha a felhasználó a szkript végrehajtása után a legördülő listára kattint, a következő lista jelenik meg.

Ha a felhasználó kiválasztja az értéket Bash a legördülő listából a második címke értéke "Kiválasztotta: Bash."

2. példa: Hozzon létre egy ComboBox-ot a lista használatával

Az előző példában a legördülő listát statikus adatokkal hoztuk létre a QComboBox osztály addItem () metódusával. Ez a példa bemutatja, hogyan lehet több elemet hozzáadni a legördülő listához Python-lista definiálásával. Először statikus szöveget adunk a legördülő lista első eleméhez az addItem () módszerrel. Ezután meghatározzuk egy öt elem listáját a szkriptben, és ezeket az elemeket hozzáadjuk a legördülő listához az addItems () módszerrel. A legördülő listához csatolt egy egyedi funkció, amely a felhasználó választása alapján megjeleníti az üzenetet a címkén.

# Importálja a szükséges modulokat
import sys
a PyQt5-ből.QtWidgetek importálása *
# Deklarálja az osztályt a combobox létrehozására a listaadatok felhasználásával
osztály ComboExample (QMainWindow):
def __init __ (én):
szuper().__benne__()
# Állítsa be az ablak csomóját
maga.setWindowTitle ("ComboBox listaadatokkal")
# Állítsa be az ablak geometriáját
maga.setGeometry (100, 100, 350, 150)
# Készítsen comboboxot
maga.combobox = QComboBox (self)
# Állítsa be a combobox geometriáját
maga.combobox.setGeometry (30, 30, 200, 30)
# Definiálja a combobox listaelemeit
src_engines = ["google.com "," yahoo.com "," kérdezd meg.com "," baidu.com "," yandex.com "]
# Engedélyezze a combobox szerkeszthető beállítását
maga.combobox.setEditable (True)
# Állítsa be a combobox első elemét
maga.combobox.addItem ("Keresőmotor kiválasztása")
# Tegyen fel több elemet a comboboxba a lista használatával
maga.combobox.addItems (src_engines)
# Definiálja a címkét a combobox alján, hogy üzenetet adjon a felhasználónak
maga.msgLabel = QLabel (", saját)
# Állítsa be a címke geometriáját
maga.msgLabel.setGeometry (30, 60, 290, 60)
# Bármely elem kiválasztása esetén hívja meg az egyéni funkciót
maga.combobox.aktivált [str].összekapcsolni (én.onClicked)
# Mozgassa az ablak helyzetét
maga.mozgás (800, 400)
# Jelenítse meg az ablakot
maga.előadás()
# Adjon meg egy módszert a Combobox kattintási eseményének kezelésére
def onClicked (self, val):
# Ellenőrizze, hogy a felhasználó bármely elemet kiválasztott-e vagy sem
if val == "Keresőmotor kiválasztása":
message = "Nem választott ki semmit."
más:
message = "A kedvenc keresőmotorod" + val
# Jelenítse meg az üzenet szövegét a címkében
maga.msgLabel.setText (üzenet)
# Jelenítse meg az üzenetet a konzolon
nyomtatás (üzenet)
# Hozza létre az alkalmazás objektumot
app = QApplication (sys.argv)
# Hozzon létre egy objektumot az osztályobjektumból
combo = ComboExample ()
# Futtassa az alkalmazást
kb.exec ()

Ha a felhasználó a szkript végrehajtása után a legördülő listára kattint, akkor a következő lista jelenik meg.

Ha a felhasználó a legördülő lista első elemét kivéve bármely elemet kiválasztja, akkor a kiválasztott érték a másik szöveggel kombinálva jelenik meg a címkén.

Ha a felhasználó kiválasztja a legördülő lista első elemét, akkor az 'Nem választott semmit'felirat jelenik meg a címkén.

Következtetés

Ez a cikk bemutatta, hogyan hozhat létre és használhat legördülő listákat a Pythonban a QComboBox osztály egyszerű példák segítségével, amelyek segítenek jobban megérteni ennek az osztálynak a használatát.

A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...