Hvordan du bruker pyqt qcomboBox

Hvordan du bruker pyqt qcomboBox

EN ComboBox brukes til å velge ett element fra en liste over elementer, omtrent som alternativknappen. De QComBobox Klasse av PYQT brukes til å lage rullegardinlister ved hjelp av Python-skript. Det bringer opp en liste over elementer for brukeren å velge. Elementene til ComboBox kan legges til, endres og fjernes ved hjelp av skriptet. Flere elementer kan velges som avkrysningsruten fra listen over elementer fra ComboBox, så kalles det ListBox. Denne opplæringen viser deg hvordan du bruker QComboBox for å lage en rullegardinliste i Python.

QComBobox -metoder

QComboBox -klassen inneholder mange metoder for å utføre forskjellige oppgaver relatert til ComboBox. Noen av de mer ofte brukte metodene i denne klassen er beskrevet nedenfor:

Metodens navn Hensikt
telle() Brukes til å telle det totale antallet elementer på listen.
AddItem () Brukes til å legge til et nytt element på listen.
AddItems () Brukes til å legge til flere elementer på listen.
itemText () Brukes til å lese teksten til et bestemt element basert på en indeks.
setItemText () Brukes til å angi teksten til et bestemt element basert på en indeks.
CurrentText () Brukes til å lese teksten til det valgte elementet.
CurrentIndex () Brukes til å lese indeksen for det valgte elementet.
klar() Brukes til å slette alle elementene fra listen.
fremhevet() Brukes når et element på listen blir uthevet.
aktivert () Brukes når et element er valgt av brukeren.
CurrentIndexchanged () Brukt når varen i listen har endret seg.

Combobox -bruk

Følgende seksjoner gir eksempler som forklarer noen forskjellige bruksområder av ComboBox ved hjelp av QComboBox -modulen på PYQT -biblioteket.

Eksempel 1: Lag en enkel rullegardinliste

Dette eksemplet viser deg hvordan du lager en enkel rullegardinliste ved hjelp av QComboBox-klassen. Her opprettes en rullegardinliste over fem elementer og er knyttet til en tilpasset funksjon som vil skrive ut den valgte verdien fra listen. Én etikett brukes i funksjonen til rullegardinlisten for å vise statisk tekst, og en annen etikett brukes under rullegardinlisten for å vise den valgte verdien.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.Qtwidgets import (qapplication, qwidget, qlabel, qvboxlayout, qcomboBox)
# Erklære klassen for å lage comboBox
Class Comboexample (QWIDGET):
def __init __ (selv):
super().__i det__()
# Angi etiketten før ComboBox
selv-.TopLabel = Qlabel ('Velg ditt favorittprogrammeringsspråk:', Selv)
# Definer ComboBox med gjenstander
comboBox = qcombobox (selv)
ComboBox.AddItem ('PHP')
ComboBox.AddItem ('Python')
ComboBox.AddItem ('Perl')
ComboBox.additem ('bash')
ComboBox.AddItem ('Java')
# Angi etiketten etter ComboBox
selv-.BottomLabel = Qlabel (", selv)
selv-.Bottomlabel.Justere størrelse ()
# Definer Vartical Layout Box
v_layout = qvboxLayout ()
V_Layout.AddWidget (selv.toplabel)
V_Layout.AddWidget (ComboBox)
V_Layout.AddWidget (selv.Bottomlabel)
# Ring den tilpassede metoden hvis noe element er valgt
ComboBox.aktivert [str].Koble til (selv.på valgt)
# Angi konfigurasjonene for vinduet
selv-.SetContentsMargins (20, 20, 20, 20)
selv-.setslayout (v_layout)
selv-.Flytt (800, 300)
selv-.SetWindowTitle ('Bruk av ComboBox')
# Tilpasset funksjon for å lese verdien av det valgte elementet
Def OnSelected (Self, TxtVal):
txtVal = "\ nyou har valgt:" + txtval
selv-.Bottomlabel.SettExt (txtVal)
# Lag appobjekt og utfør appen
app = qapplication (sys.argv)
comboBox = comboexample ()
ComboBox.forestilling()
app.exec ()

Hvis brukeren klikker på rullegardinlisten etter å ha utført skriptet, vises følgende liste.

Hvis brukeren velger verdien Bash Fra rullegardinlisten vil verdien av den andre etiketten bli endret til 'Du har valgt: bash.'

Eksempel 2: Opprett en ComboBox ved hjelp av listen

I forrige eksempel ble rullegardinlisten opprettet med statiske data ved bruk av AddItem () -metoden i QComboBox-klassen. Dette eksemplet viser deg hvordan du legger til flere elementer i rullegardinlisten ved å definere en Python-liste. Først vil vi legge til statisk tekst til det første elementet i rullegardinlisten ved hjelp av AddItem () -metoden. Deretter vil vi definere en liste over fem elementer i skriptet, og vi vil legge disse elementene til rullegardinlisten ved hjelp av AddItems () -metoden. En tilpasset funksjon er knyttet til rullegardinlisten for å vise meldingen i etiketten basert på brukervalget.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets import *
# Erklære klassen for å opprette ComboBox ved å bruke listedata
Class comboexample (QMainWindow):
def __init __ (selv):
super().__i det__()
# Angi tittelen i vinduet
selv-.SetWindowTitle ("ComboBox med listedata")
# Angi geometrien for vinduet
selv-.setgeometry (100, 100, 350, 150)
# Opprett ComboBox
selv-.comboBox = qcombobox (selv)
# Angi geometrien for ComboBox
selv-.ComboBox.setgeometry (30, 30, 200, 30)
# Definer listeelementer for ComboBox
src_engines = ["Google.com "," yahoo.com "," spør.com "," Baidu.com "," yandex.com "]
# Aktiver det redigerbare alternativet til ComboBox
selv-.ComboBox.settes (sant)
# Angi det første elementet for ComboBox
selv-.ComboBox.AddItem ("Velg søkemotor")
# Legg til flere elementer i ComboBox ved hjelp av listen
selv-.ComboBox.AddItems (SRC_Engines)
# Definer etikett nederst i ComboBox for å oppgi melding til brukeren
selv-.msglabel = qlabel (", selv)
# Angi geometrien for etiketten
selv-.msglabel.setgeometry (30, 60, 290, 60)
# Ring den tilpassede funksjonen når et hvilket som helst element er valgt
selv-.ComboBox.aktivert [str].Koble til (selv.onklikket)
# Flytt vinduets plassering
selv-.Flytt (800, 400)
# Vis vinduet
selv-.forestilling()
# Definer en metode for å håndtere klikkhendelsen til ComboBox
Def OnClicked (Self, Val):
# Kontroller at ethvert element er valgt av brukeren eller ikke
Hvis val == "Velg søkemotor":
melding = "Du har valgt ingenting.""
ellers:
melding = "Din favoritt søkemotor er" + val
# Vis meldingsteksten i etiketten
selv-.msglabel.SettExt (melding)
# Vis meldingen i konsollen
trykk (melding)
# Opprett appobjektet
app = qapplication (sys.argv)
# Lag et objekt av klasseobjektet
Combo = comboexample ()
# Utfør appen
app.exec ()

Hvis brukeren klikker på rullegardinlisten etter å ha utført skriptet, vises følgende liste.

Hvis brukeren velger noe element bortsett fra det første elementet i rullegardinlisten, vil den valgte verdien vises i etiketten ved å kombinere med den andre teksten.

Hvis brukeren velger det første elementet i rullegardinlisten, så er verdien, 'Du har valgt ingenting'vil bli vist i etiketten.

Konklusjon

Denne artikkelen viste deg hvordan du lager og bruker rullegardinlister i Python ved å bruke QComBobox Klasse ved å bruke enkle eksempler for å hjelpe deg med å forstå bruken av denne klassen bedre.