Pytonorm

Hur man använder PyQt QComboBox

Hur man använder PyQt QComboBox

A Kombinationsrutan används för att välja ett objekt från en lista med objekt, ungefär som alternativknappen. De QComboBox klass av PyQt används för att skapa rullgardinslistor med Python-skript. Det visar en lista över objekt som användaren kan välja. Objekt i ComboBox kan läggas till, ändras och tas bort med skriptet. Flera objekt kan väljas som CheckBox-knappen i listan över objekt från ComboBox, då heter den ListBox. Denna handledning visar hur du använder QComboBox för att skapa en rullgardinslista i Python.

QComboBox-metoder

QComboBox-klassen innehåller många metoder för att utföra olika uppgifter relaterade till ComboBox. Några av de vanligaste metoderna i denna klass beskrivs nedan:

Metodens namn Syfte
räkna() Används för att räkna det totala antalet artiklar i listan.
Lägg till vara() Används för att lägga till ett nytt objekt i listan.
addItems () Används för att lägga till flera objekt i listan.
artikelText () Används för att läsa texten för ett visst objekt baserat på ett index.
setItemText () Används för att ställa in texten för ett visst objekt baserat på ett index.
currentText () Används för att läsa texten för det valda objektet.
currentIndex () Används för att läsa index för det valda objektet.
klar() Används för att ta bort alla objekt från listan.
markerad() Används när ett objekt i listan är markerat.
aktiverad () Används när ett objekt väljs av användaren.
currentIndexChanged () Används när artikeln i listan har ändrats.

ComboBox-användning

Följande avsnitt ger exempel som förklarar olika användningsområden för ComboBox med hjälp av QComboBox-modulen i PyQt-biblioteket.

Exempel 1: Skapa en enkel rullgardinslista

Det här exemplet visar hur du skapar en enkel rullgardinslista med hjälp av QComboBox-klassen. Här skapas en listruta med fem element som bifogas en anpassad funktion som skriver ut det valda värdet från listan. En etikett används i rullgardinslistans funktion för att visa statisk text, och en annan etikett används under rullgardinsmenyn för att visa det valda värdet.

# Importera nödvändiga moduler
importera sys
från PyQt5.Import av QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Förklara klass för att skapa ComboBox
klass ComboExempel (QWidget):
def __init __ (själv):
super().__i det__()
# Ställ in etiketten före ComboBox
själv.topLabel = QLabel ('Välj ditt favoritprogrammeringsspråk:', själv)
# Definiera kombinationsrutan med objekt
kombinationsruta = QComboBox (själv)
Kombinationsrutan.addItem ('PHP')
Kombinationsrutan.addItem ('Python')
Kombinationsrutan.addItem ('Perl')
Kombinationsrutan.addItem ('Bash')
Kombinationsrutan.addItem ('Java')
# Ställ in etiketten efter ComboBox
själv.bottomLabel = QLabel (", själv)
själv.bottomLabel.justera storlek ()
# Definiera rutan för vertikal layout
v_layout = QVBoxLayout ()
v_layout.addWidget (själv.topLabel)
v_layout.addWidget (kombinationsruta)
v_layout.addWidget (själv.bottomLabel)
# Ring den anpassade metoden om något objekt är valt
Kombinationsrutan.aktiverad [str].ansluta (själv.onValda)
# Ställ in fönstrets konfigurationer
själv.setContentsMargins (20, 20, 20, 20)
själv.setLayout (v_layout)
själv.flytta (800, 300)
själv.setWindowTitle ('Användning av ComboBox')
# Anpassad funktion för att läsa värdet för det valda objektet
def onSelected (self, txtVal):
txtVal = "\ nDu har valt:" + txtVal
själv.bottomLabel.setText (txtVal)
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
kombinationsruta = ComboExample ()
Kombinationsrutan.show()
app.exec ()

Om användaren klickar på rullgardinslistan efter att skriptet har körts visas följande lista.

Om användaren väljer värdet Våldsamt slag från listrutan ändras värdet på den andra etiketten till 'Du har valt: Bash.''

Exempel 2: Skapa en kombinationsruta med hjälp av listan

I föregående exempel skapades listrutan med statisk data med hjälp av metoden addItem () i klassen QComboBox. Det här exemplet visar hur du lägger till flera objekt i listrutan genom att definiera en Python-lista. Först lägger vi till statisk text till det första objektet i listrutan med hjälp av metoden addItem (). Därefter definierar vi en lista med fem element i skriptet och vi lägger till dessa element i listrutan med metoden addItems (). En anpassad funktion är kopplad till listrutan för att visa meddelandet i etiketten baserat på användarvalet.

# Importera nödvändiga moduler
importera sys
från PyQt5.Import av QtWidgets *
# Förklara klassen att skapa kombinationsruta med hjälp av listdata
klass ComboExample (QMainWindow):
def __init __ (själv):
super().__i det__()
# Ställ fönstrets tittel
själv.setWindowTitle ("ComboBox med listdata")
# Ställ in geometrin för fönstret
själv.setGeometry (100, 100, 350, 150)
# Skapa kombinationsruta
själv.kombinationsruta = QComboBox (själv)
# Ställ in geometrin för kombinationsrutan
själv.Kombinationsrutan.setGeometry (30, 30, 200, 30)
# Definiera listobjekt för kombinationsrutan
src_engines = ["google.com "," yahoo.com "," fråga.com "," baidu.com "," yandex.com "]
# Aktivera det redigerbara alternativet för kombinationsrutan
själv.Kombinationsrutan.setEditable (True)
# Ställ in det första objektet för kombinationsrutan
själv.Kombinationsrutan.addItem ("Välj sökmotor")
# Lägg till flera objekt i kombinationsrutan med hjälp av listan
själv.Kombinationsrutan.addItems (src_engines)
# Definiera etiketten längst ner i kombinationsrutan för att ge ett meddelande till användaren
själv.msgLabel = QLabel (", själv)
# Ställ in geometrin för etiketten
själv.msgLabel.setGeometry (30, 60, 290, 60)
# Ring den anpassade funktionen när något objekt är valt
själv.Kombinationsrutan.aktiverad [str].ansluta (själv.onClicked)
# Flytta fönstrets position
själv.flytta (800, 400)
# Visa fönstret
själv.show()
# Definiera en metod för att hantera klickhändelsen i kombinationsrutan
def onClicked (själv, val):
# Kontrollera att något objekt är valt av användaren eller inte
if val == "Välj sökmotor":
message = "Du har valt ingenting."
annan:
meddelande = "Din favoritsökmotor är" + val
# Visa meddelandetexten på etiketten
själv.msgLabel.setText (meddelande)
# Visa meddelandet i konsolen
skriv ut (meddelande)
# Skapa app-objektet
app = QApplication (sys.argv)
# Skapa ett objekt av klassobjektet
combo = ComboExample ()
# Kör appen
app.exec ()

Om användaren klickar på rullgardinslistan efter att skriptet har körts visas följande lista.

Om användaren väljer något objekt utom det första objektet i listrutan kommer det valda värdet att visas i etiketten genom att kombinera med den andra texten.

Om användaren väljer det första objektet i listrutan, kommer värdet, 'Du har valt ingentingkommer att visas på etiketten.

Slutsats

Den här artikeln visade dig hur du skapar och använder rullgardinslistor i Python med hjälp av QComboBox klass med enkla exempel som hjälper dig att bättre förstå användningen av den här klassen.

Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...
Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...