Piton

Kako se koristi PyQt QComboBox

Kako se koristi PyQt QComboBox

A ComboBox koristi se za odabir jedne stavke s popisa stavki, slično radio gumbu. The QComboBox klasa PyQt koristi se za stvaranje padajućih popisa pomoću Python skripte. Donosi popis stavki koje korisnik treba odabrati. Stavke ComboBox-a mogu se dodavati, mijenjati i uklanjati pomoću skripte. Može se odabrati više stavki poput gumba CheckBox s popisa stavki iz ComboBox-a, a zatim se zove ListBox. Ovaj vam vodič pokazuje kako koristiti QComboBox za stvaranje padajućeg popisa u Pythonu.

QComboBox metode

Klasa QComboBox sadrži mnogo metoda za izvođenje različitih zadataka povezanih s ComboBoxom. Neke od najčešće korištenih metoda ove klase opisane su u nastavku:

Naziv metode Svrha
računati() Koristi se za brojanje ukupnog broja stavki na popisu.
Dodaj Predmet() Koristi se za dodavanje jedne nove stavke na popis.
addItems () Koristi se za dodavanje više stavki na popis.
itemText () Koristi se za čitanje teksta određene stavke na temelju indeksa.
setItemText () Koristi se za postavljanje teksta određene stavke na temelju indeksa.
trenutni tekst () Koristi se za čitanje teksta odabrane stavke.
currentIndex () Koristi se za čitanje indeksa odabrane stavke.
čisto() Koristi se za brisanje svih stavki s popisa.
istaknuto () Koristi se kada je stavka na popisu istaknuta.
aktivirano () Koristi se kada korisnik odabere stavku.
currentIndexChanged () Koristi se kada se stavka na popisu promijenila.

Upotreba ComboBox-a

Sljedeći odjeljci daju primjere koji objašnjavaju neke različite upotrebe ComboBoxa pomoću QComboBox modula knjižnice PyQt.

Primjer 1: Stvorite jednostavan padajući popis

Ovaj primjer pokazuje vam kako stvoriti jednostavan padajući popis pomoću klase QComboBox. Ovdje se stvara padajući popis od pet elemenata koji je pridružen prilagođenoj funkciji koja će ispisati odabranu vrijednost s popisa. Jedna se oznaka koristi u funkciji padajućeg popisa za prikaz statičnog teksta, a druga se oznaka koristi ispod padajućeg popisa za prikaz odabrane vrijednosti.

# Uvezite potrebne module
import sys
iz PyQt5.QtWidgets uvoz (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Deklarirajte klasu za stvaranje ComboBox-a
klasa ComboExample (QWidget):
def __init __ (samo):
super().__u tome__()
# Postavite naljepnicu prije ComboBox-a
sebe.topLabel = QLabel ('Odaberite svoj omiljeni programski jezik:', self)
# Definirajte kombinirani okvir sa stavkama
combobox = QComboBox (samostalno)
kombinirani okvir.addItem ('PHP')
kombinirani okvir.addItem ('Python')
kombinirani okvir.addItem ('Perl')
kombinirani okvir.addItem ('Bash')
kombinirani okvir.addItem ('Java')
# Postavite naljepnicu nakon ComboBox-a
sebe.bottomLabel = QLabel (", samo)
sebe.bottomLabel.AdjuSize ()
# Definirajte okvir s promjenjivim rasporedom
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.addWidget (kombinirani okvir)
v_layout.addWidget (self.bottomLabel)
# Pozovite prilagođenu metodu ako je odabrana bilo koja stavka
kombinirani okvir.aktivirano [str].povezati (samo.onSelected)
# Postavite konfiguracije prozora
sebe.setContentsMargins (20, 20, 20, 20)
sebe.setLayout (v_layout)
sebe.pomak (800, 300)
sebe.setWindowTitle ('Korištenje ComboBoxa')
# Prilagođena funkcija za očitavanje vrijednosti odabrane stavke
def onSelected (self, txtVal):
txtVal = "\ nVi ste odabrali:" + txtVal
sebe.bottomLabel.setText (txtVal)
# Stvorite objekt aplikacije i izvršite aplikaciju
app = QApplication (sys.argv)
combobox = ComboExample ()
kombinirani okvir.pokazati()
app.izvršiti ()

Ako korisnik klikne na padajući popis nakon izvršavanja skripte, pojavit će se sljedeći popis.

Ako korisnik odabere vrijednost Bash s padajućeg popisa vrijednost druge oznake promijenit će se u 'Odabrali ste: Bash.'

Primjer 2: Stvorite ComboBox pomoću popisa

U prethodnom primjeru padajući popis kreiran je sa statičkim podacima pomoću metode addItem () klase QComboBox. Ovaj primjer pokazuje kako dodati više stavki na padajući popis definiranjem Python popisa. Prvo ćemo dodati statički tekst u prvu stavku padajućeg popisa metodom addItem (). Zatim ćemo definirati popis od pet elemenata u skripti i te ćemo elemente dodati na padajući popis metodom addItems (). Prilagođena funkcija pridružena je padajućem popisu za prikaz poruke u naljepnici na temelju odabira korisnika.

# Uvezite potrebne module
import sys
iz PyQt5.QtWidgets import *
# Deklarirajte klasu za stvaranje kombiniranog okvira pomoću podataka popisa
klasa ComboExample (QMainWindow):
def __init __ (samo):
super().__u tome__()
# Postavite naslov prozora
sebe.setWindowTitle ("ComboBox s podacima s popisa")
# Postavite geometriju prozora
sebe.setGeometry (100, 100, 350, 150)
# Stvori kombinirani okvir
sebe.combobox = QComboBox (samostalno)
# Postavite geometriju kombiniranog okvira
sebe.kombinirani okvir.setGeometry (30, 30, 200, 30)
# Definirajte stavke popisa za kombinirani okvir
src_engines = ["google.com "," yahoo.com "," pitajte.com "," baidu.com "," yandex.com "]
# Omogućite mogućnost uređivanja kombiniranog okvira
sebe.kombinirani okvir.setEditable (True)
# Postavite prvu stavku za kombinirani okvir
sebe.kombinirani okvir.addItem ("Odaberite tražilicu")
# Dodajte više stavki u kombinirani okvir pomoću popisa
sebe.kombinirani okvir.addItems (src_engines)
# Definirajte naljepnicu na dnu kombiniranog okvira kako biste pružili poruku korisniku
sebe.msgLabel = QLabel (", samo)
# Postavite geometriju naljepnice
sebe.msgLabel.setGeometry (30, 60, 290, 60)
# Pozovite prilagođenu funkciju kad je odabrana bilo koja stavka
sebe.kombinirani okvir.aktivirano [str].povezati (samo.onClicked)
# Pomaknite položaj prozora
sebe.pomak (800, 400)
# Prikažite prozor
sebe.pokazati()
# Definirajte metodu za rukovanje klikom Comboboxa
def onClicked (self, val):
# Provjerite je li korisnik odabrao bilo koju stavku ili ne
if val == "Odaberite tražilicu":
message = "Ništa niste odabrali."
drugo:
message = "Vaša omiljena tražilica je" + val
# Prikažite tekst poruke u naljepnici
sebe.msgLabel.setText (poruka)
# Prikažite poruku na konzoli
ispis (poruka)
# Stvorite objekt aplikacije
app = QApplication (sys.argv)
# Stvorite objekt objekta klase
combo = ComboExample ()
# Izvršite aplikaciju
app.izvršiti ()

Ako korisnik klikne na padajući popis nakon izvršavanja skripte, tada će se pojaviti sljedeći popis.

Ako korisnik odabere bilo koju stavku osim prve stavke na padajućem popisu, tada će se odabrana vrijednost prikazati na naljepnici kombiniranjem s drugim tekstom.

Ako korisnik odabere prvu stavku s padajućeg popisa, tada vrijednost, 'Niste odabrali ništa'bit će prikazano na naljepnici.

Zaključak

Ovaj vam je članak pokazao kako stvoriti i koristiti padajuće popise u Pythonu pomoću QComboBox razred koristeći jednostavne primjere koji će vam pomoći da bolje razumijete upotrebu ovog razreda.

Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...
Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...
Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...