Python

Kā izmantot izvēles rūtiņu PyQt?

Kā izmantot izvēles rūtiņu PyQt?

Atzīmēšanas rūtiņu izmanto, lai atlasītu nulles vai vairāk opcijas no daudzām opcijām, izmantojot grafisko lietotāja saskarni. Veidlapu ar izvēles rūtiņu var izveidot, izmantojot QCheckBox klase Python skriptā vai izmantojot QCheckBox logrīks Qt dizainers nerakstot nevienu scenāriju.

Kad veidlapa ar izvēles rūtiņu tiek izveidota, izmantojot QCheckBox klase, tad stateChanged.savienot () Funkcija tiek izsaukta, lai izmantotu lietotāja ievadītās darbības. Ja lietotājs atzīmēja jebkuru izvēles rūtiņas opciju, tad vērtība QtCore.Qt.pārbaudīts būs patiesa. Izmantojot, var izveidot vairākas izvēles rūtiņas ar vienu atlasi, piemēram, radio pogu QbuttonGroup klasē.

Šajā veidlapā ir parādīts, kā veidlapu ar izvēles rūtiņu var izveidot, rakstot Python skriptu.

Nepieciešamās QCheckBox metodes

QCheckBox klasei ir daudz funkciju, lai veiktu dažāda veida uzdevumus ar izvēles rūtiņu. Dažas šīs klases visbiežāk izmantotās metodes ir aprakstītas tālāk:

Metodes nosaukums Mērķis
isChecked () Tas atgriež Būla vērtību. Kad lietotājs noklikšķina, lai atzīmētu izvēles rūtiņu, tā atgriež vērtību True, pretējā gadījumā tā atgriež False.
setChecked () To lieto, lai mainītu izvēles rūtiņas stāvokli. Patiesā vērtība ir iestatīta, lai atzīmētu izvēles rūtiņu, un Nepatiesa vērtība ir iestatīta, lai neatzīmētu izvēles rūtiņu.
teksts () To lieto, lai izlasītu izvēles rūtiņas etiķeti.
setText () To izmanto, lai iestatītu izvēles rūtiņas etiķeti.
isTriState () Tas atgriež Būla vērtību. To izmanto, lai pārbaudītu trīs stāvokli, lai uzzinātu, vai izvēles rūtiņa ir iespējota vai nav.
setTriState () To lieto, lai iespējotu izvēles rūtiņas trešo stāvokli, kas norāda neitrālu stāvokli.

Izveidojiet veidlapu ar izvēles rūtiņu, izmantojot QCheckBox klasi:

Šajā sadaļā tiek parādīti izvēles rūtiņas lietojumi, izmantojot dažāda veida piemērus. Vienas izvēles rūtiņas izmantošana, kā parādīts pirmajā piemērā, un vairāku izvēles rūtiņu izmantošana ir parādīta otrajā piemērā.

1. piemērs: Vienotas izvēles rūtiņas izveidošana

Veids, kā izveidot vienu izvēles rūtiņu, izmantojot QCheckBox klase un lietotāja norādītās izvēles rūtiņas ievades vērtības nolasīšana ir parādīti šajā piemērā. Nepieciešamie moduļi tiek importēti skripta sākumā. Iepriekš sniegtajā izvēles rūtiņā tiek izmantota iezīme, lai sniegtu informāciju lietotājam. Ja lietotājs noklikšķina uz izvēles rūtiņas, lai pārbaudītu, skripts tiks izdrukāts:Oho! Jums patīk programmēt”, Pretējā gadījumā skripts tiks drukāts,Ak nē!, Jums nepatīk programmēt”.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5 importējiet QtCore, QtWidgets
no PyQt5.QtWidgets importē QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definējiet klasi veidlapas izveidei ar vienu izvēles rūtiņu
klases SingleCheckbox (QMainWindow):
def __init __ (pats):
super ().__tajā__()
# Izveidojiet etiķetes tekstu lietotājam
lb = QLabel ("Vai jums patīk programmēt?", pats)
Mārciņas.setGeometry (20, 20, 200, 20)
Mārciņas.pārvietoties (20, 20)
# Izveidojiet izvēles rūtiņu ar etiķeti
cb = QCheckBox ('Jā', pats)
cb.stateChanged.savienot (sevi.Pārbaudīt_atbildēt)
cb.pārvietoties (20, 50)
# Iestatiet vertikālo Qt izkārtojumu
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Iestatiet loga nosaukumu un izmēru
pats.setWindowTitle ('Veidlapa ar vienu izvēles rūtiņu')
pats.setGeometry (60, 60, 300, 100)
# Parādiet logu ekrāna centrā
uzvarēt = sevi.frameGeometry ()
pos = QDesktopWidget ().pieejama ģeometrija ().centrs ()
uzvarēt.moveCenter (poz)
pats.pārvietoties (uzvarēt.augšējais kreisais())
pats.rādīt ()
# Definējiet funkciju, lai pārbaudītu lietotāja ievadi
def Pārbaudes_atbilde (pats, stāvoklis):
ja statuss == QtCore.Qt.Pārbaudīts:
drukāt ("Wow! Jums patīk programmēt.")
cits:
drukāt ("Ak, nē!, Jums nepatīk programmēt.")
# Izveidojiet lietotnes objektu un izpildiet lietotni
app = QtWidgets.QApplication (sys.argv)
forma = SingleCheckbox ()
lietotne.exec ()

Pēc skripta izpildes parādīsies šāds logs ar izvēles rūtiņu.


Šajā izvadē lietotājs ir atzīmējis izvēles rūtiņu divas reizes un vienreiz noņemis atzīmi no izvēles rūtiņas.

2. piemērs: Vairāku izvēles rūtiņu izveide

Metode, kā izveidot vairākas izvēles rūtiņas, izmantojot QCheckbox klase un vairāku izvēles rūtiņu vairāku vērtību nolasīšana ir parādīti šajā piemērā. Logam tiek pievienotas divas etiķetes un trīs izvēles rūtiņas. Pirmā iezīme tiek pievienota izvēles rūtiņu sākumā, lai sniegtu informāciju lietotājam, savukārt otrā iezīme tiek pievienota izvēles rūtiņu beigās, lai parādītu atzīmētās izvēles rūtiņas vai izvēles rūtiņu vērtības.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5.QtWidgets importēšana (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definējiet klases veidlapas izveidošanai ar vairākām izvēles rūtiņām
klase MultipleCheckbox (QWidget):
def __init __ (pats):
super ().__tajā__()
# Iestatiet etiķetes tekstu lietotājam
lb = QLabel ("Atlasiet iecienītāko (-os) ēdienu (-us):", pats)
Mārciņas.setGeometry (20, 20, 100, 20)
Mārciņas.pārvietoties (20, 20)
# Izveidojiet trīs izvēles rūtiņas
cb1 = QCheckBox (“šokolādes kūka”, pats)
cb1.pārvietoties (20, 70)
cb1.stateChanged.savienot (lambda: sevis.Selected_Value (cb1))
cb2 = QCheckBox (“Saldējums”, pats)
CB2.pārvietot (20, 90)
CB2.stateChanged.savienot (lambda: sevis.Selected_Value (cb2))
cb3 = QCheckBox ('Pasta', pats)
cb3.pārvietot (20, 110)
cb3.stateChanged.savienot (lambda: sevis.Selected_Value (cb3))
pats.label = QLabel ('Nekas nav atlasīts')
pats.etiķete.pārvietot (20, 150)
# Iestatiet vertikālo Qt izkārtojumu
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (self.etiķete)
pats.setLayout (vbox)
pats.setWindowTitle ('Veidlapa ar vairākām izvēles rūtiņām')
pats.setGeometry (60, 60, 350, 200)
pats.lblText = "
# Parādiet logu ekrāna centrā
uzvarēt = sevi.frameGeometry ()
pos = QDesktopWidget ().pieejama ģeometrija ().centrs ()
uzvarēt.moveCenter (poz)
pats.pārvietoties (uzvarēt.augšējais kreisais())
pats.rādīt ()
# Definējiet funkciju, lai lasītu lietotāja ievadi
def Selected_Value (self, btn):
ja pats.lblText != ":
str = pats.lblText
strArray = str.sadalīt (',')
pats.lblText = "
par val in strArray:
ja btn.teksts () != val:
ja pats.lblText == ":
pats.lblText = val
cits:
pats.lblText + = ',' + val
ja btn.isChecked () == True:
ja pats.lblText == ":
pats.lblText = btn.teksts ()
cits:
pats.lblText + = ',' + btn.teksts ()
cits:
ja btn.isChecked () == True:
ja pats.lblText == ":
pats.lblText = btn.teksts ()
cits:
pats.lblText + = ',' + btn.teksts ()
pats.etiķete.setText ('Jūs esat izvēlējies \ n' + sevi.lblText)
# Izveidojiet lietotnes objektu un izpildiet lietotni
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.iziet (app.exec_ ())

Pēc skripta izpildes parādīsies šāds logs. Otrās etiķetes noklusējuma vērtība ir “Nekas nav atlasīts”Un etiķetes vērtība tiks mainīta, kad lietotājs atzīmēs vai neatzīmēs jebkuru izvēles rūtiņu.


Šajā izvadē lietotājs atzīmē divas izvēles rūtiņas, un otrās etiķetes vērtība tiek mainīta uz “Šokolāde, makaroni”.

Secinājums

Viens vai vairāki izvēles rūtiņu definēšanas un atlasīto izvēles rūtiņu vērtību nolasīšanas veids šajā apmācībā ir izskaidrots, izmantojot divus vienkāršus piemērus. Var atzīmēt izvēles rūtiņu grupas, lai atlasītu konkrētu izvēles rūtiņu no grupas, kas šeit nav parādīta.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...