Python

Kā lietot PyQt QComboBox

Kā lietot PyQt QComboBox

A ComboBox tiek izmantots, lai atlasītu vienu vienumu no objektu saraksta, līdzīgi kā radio poga. The QComboBox klase PyQt tiek izmantota, lai izveidotu nolaižamos sarakstus, izmantojot Python skriptu. Tas parāda objektu sarakstu, kurus lietotājs var izvēlēties. ComboBox vienumus var pievienot, mainīt un noņemt, izmantojot skriptu. ComboBox vienumu sarakstā var atlasīt vairākus vienumus, piemēram, pogu CheckBox, tad to sauc par ListBox. Šī apmācība parāda, kā izmantot QComboBox, lai izveidotu nolaižamo sarakstu Python.

QComboBox metodes

QComboBox klasē ir daudzas metodes dažādu ar ComboBox saistītu uzdevumu veikšanai. Dažas no šīs klases biežāk izmantotajām metodēm ir aprakstītas turpmāk:

Metodes nosaukums Mērķis
skaitīt () Izmanto, lai uzskaitītu kopējo vienumu skaitu sarakstā.
addItem () Izmanto, lai sarakstam pievienotu vienu jaunu vienumu.
addItems () Izmanto, lai sarakstam pievienotu vairākus vienumus.
itemText () Izmanto, lai lasītu konkrēta vienuma tekstu, pamatojoties uz indeksu.
setItemText () Izmanto, lai iestatītu konkrēta vienuma tekstu, pamatojoties uz indeksu.
currentText () Izmanto, lai lasītu atlasītā vienuma tekstu.
currentIndex () Izmanto, lai lasītu atlasītā vienuma indeksu.
skaidrs () Izmanto, lai izdzēstu visus vienumus no saraksta.
izcelts () Izmanto, ja sarakstā ir iezīmēts vienums.
aktivizēts () Izmanto, ja lietotājs ir izvēlējies vienumu.
currentIndexChanged () Izmanto, kad saraksta vienums ir mainījies.

ComboBox lietošana

Nākamajās sadaļās ir sniegti piemēri, kas izskaidro dažus dažādus ComboBox izmantošanas veidus, izmantojot PyQt bibliotēkas moduli QComboBox.

1. piemērs: izveidojiet vienkāršu nolaižamo sarakstu

Šis piemērs parāda, kā izveidot vienkāršu nolaižamo sarakstu, izmantojot QComboBox klasi. Šeit tiek izveidots nolaižamais saraksts ar pieciem elementiem un tiek pievienots pielāgotajai funkcijai, kas drukās izvēlēto vērtību no saraksta. Viena etiķete tiek izmantota nolaižamā saraksta funkcijā, lai parādītu statisku tekstu, un cita iezīme tiek izmantota zem nolaižamā saraksta, lai parādītu atlasīto vērtību.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5.QtWidgets importēšana (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Deklarēt klasi, lai izveidotu ComboBox
klases ComboExample (QWidget):
def __init __ (pats):
super ().__tajā__()
# Iestatiet etiķeti pirms ComboBox
pats.topLabel = QLabel ('Izvēlieties savu iecienīto programmēšanas valodu:', pats)
# Definējiet kombinēto lodziņu ar vienumiem
combobox = QComboBox (pats)
combobox.addItem ('PHP')
combobox.addItem ('Python')
combobox.addItem ('Perl')
combobox.addItem ('Bash')
combobox.addItem ('Java')
# Iestatiet etiķeti pēc ComboBox
pats.bottomLabel = QLabel (", pats")
pats.bottomLabel.adjustSize ()
# Definējiet vārtu izkārtojuma lodziņu
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.addWidget (kombinētais lodziņš)
v_layout.addWidget (self.bottomLabel)
# Izsauciet pielāgoto metodi, ja ir atlasīts kāds vienums
combobox.aktivizēts [str].savienot (sevi.onSelected)
# Iestatiet loga konfigurācijas
pats.setContentsSargins (20, 20, 20, 20)
pats.setLayout (v_layout)
pats.pārvietot (800, 300)
pats.setWindowTitle ('ComboBox izmantošana')
# Pielāgota funkcija, lai nolasītu atlasītā vienuma vērtību
def onSelected (self, txtVal):
txtVal = "\ nJūs esat izvēlējies:" + txtVal
pats.bottomLabel.setText (txtVal)
# Izveidojiet lietotnes objektu un izpildiet lietotni
app = QApplication (sys.argv)
combobox = ComboExample ()
combobox.rādīt ()
lietotne.exec ()

Ja lietotājs pēc skripta izpildes noklikšķina uz nolaižamā saraksta, tiks parādīts šāds saraksts.

Ja lietotājs izvēlas vērtību Bash nolaižamajā sarakstā otrās etiķetes vērtība tiks mainīta uzJūs esat izvēlējies: Bash."

2. piemērs: izveidojiet ComboBox, izmantojot sarakstu

Iepriekšējā piemērā nolaižamais saraksts tika izveidots ar statiskiem datiem, izmantojot QComboBox klases metodi addItem (). Šis piemērs parāda, kā nolaižamajā sarakstā pievienot vairākus vienumus, definējot Python sarakstu. Pirmkārt, mēs pievienosim statisku tekstu nolaižamā saraksta pirmajam vienumam, izmantojot metodi addItem (). Pēc tam mēs definēsim piecu elementu sarakstu skriptā un pievienosim šos elementus nolaižamajā sarakstā, izmantojot metodi addItems (). Nolaižamajam sarakstam ir pievienota pielāgota funkcija, lai parādītu ziņojumu etiķetē, pamatojoties uz lietotāja izvēli.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5.QtWidgets importēšana *
# Deklarējiet klasi, lai izveidotu kombinēto lodziņu, izmantojot saraksta datus
klase ComboExample (QMainWindow):
def __init __ (pats):
super ().__tajā__()
# Iestatiet loga gabalu
pats.setWindowTitle ("ComboBox ar saraksta datiem")
# Iestatiet loga ģeometriju
pats.setGeometry (100, 100, 350, 150)
# Izveidojiet kombināciju
pats.combobox = QComboBox (pats)
# Iestatiet kombinētās kastes ģeometriju
pats.combobox.setGeometry (30, 30, 200, 30)
# Definējiet kombinētās kastes saraksta vienumus
src_engines = ["google.com "," yahoo.com "," jautājiet.com "," baidu.com "," yandex.com "]
# Iespējot kombinētās lodziņa rediģējamo opciju
pats.combobox.setEditable (True)
# Iestatiet pirmo elementu kombinācijas lodziņā
pats.combobox.addItem ("Atlasīt meklētājprogrammu")
# Pievienojiet vairākus vienumus kombinētajā lodziņā, izmantojot sarakstu
pats.combobox.addItems (src_engines)
# Definējiet etiķeti kombinētās kastes apakšdaļā, lai lietotājam sniegtu ziņojumu
pats.msgLabel = QLabel (", pats")
# Iestatiet etiķetes ģeometriju
pats.msgLabel.setGeometry (30, 60, 290, 60)
# Izsauciet pielāgoto funkciju, kad ir atlasīts kāds vienums
pats.combobox.aktivizēts [str].savienot (sevi.onClicked)
# Pārvietojiet loga pozīciju
pats.pārvietot (800, 400)
# Parādīt logu
pats.rādīt ()
# Definējiet metodi, kā rīkoties ar Combobox klikšķa notikumu
def onClicked (self, val):
# Pārbaudiet, vai lietotājs ir izvēlējies jebkuru vienumu
if val == "Atlasīt meklētājprogrammu":
message = "Jūs neko neesat atlasījis."
cits:
message = "Jūsu iecienītākā meklētājprogramma ir" + val
# Parādiet ziņojuma tekstu etiķetē
pats.msgLabel.setText (ziņojums)
# Parādiet ziņojumu konsolē
izdrukāt (ziņojumu)
# Izveidojiet lietotnes objektu
app = QApplication (sys.argv)
# Izveidojiet klases objekta objektu
combo = ComboExample ()
# Izpildiet lietotni
lietotne.exec ()

Ja lietotājs pēc skripta izpildes noklikšķina uz nolaižamā saraksta, tiks parādīts šāds saraksts.

Ja lietotājs nolaižamajā sarakstā atlasa jebkuru vienumu, izņemot pirmo vienumu, atlasītā vērtība tiks parādīta etiķetē, apvienojot to ar citu tekstu.

Ja lietotājs nolaižamajā sarakstā atlasa pirmo vienumu, tad vērtību 'Jūs neko neesat atlasījis"tiks parādīts etiķetē.

Secinājums

Šis raksts parādīja, kā izveidot un izmantot Python nolaižamos sarakstus, izmantojot QComboBox klasē, izmantojot vienkāršus piemērus, kas palīdzēs labāk izprast šīs klases lietojumu.

Cīņa par Vesnota apmācību
Cīņa par Vesnotu ir viena no populārākajām atvērtā koda stratēģijas spēlēm, kuru jūs varat spēlēt šajā laikā. Šī spēle ir izstrādāta ne tikai ļoti ilg...
0 A.D. Apmācība
No daudzajām stratēģijas spēlēm 0 A.D. izdodas izcelties kā visaptverošs nosaukums un ļoti dziļa, taktiska spēle, neskatoties uz to, ka tā ir atvērtā ...
Unity3D apmācība
Ievads Vienotībā 3D Unity 3D ir spēcīgs spēļu izstrādes dzinējs. Tā ir pārrobežu platforma, kas ļauj izveidot spēles mobilajām ierīcēm, tīmeklim, gald...