Tkinter Python-д а gui бағдарламалау



Pdf көрінісі
бет11/16
Дата04.10.2024
өлшемі1,32 Mb.
#146854
1   ...   8   9   10   11   12   13   14   15   16
Байланысты:
Tkinter. Python-да GUI бағдарламалау

Checkbutton - құсбелгі 
Құсбелгілер өзара байланысты орнатуды қажет етпейді, сондықтан tkinter 
айнымалылары қажет пе деген сұрақ туындауы мүмкін? Олар құсбелгілердің жағдайы 
туралы ақпаратты алу үшін қажет. Checkbutton-мен байланысты айнымалының мәні 
бойынша құсбелгі қойылғанын немесе жойылғанын анықтауға болады, бұл өз кезегінде 
бағдарламаның орындалу барысына әсер етеді. Әрбір құсбелгіде өзінің Tkinter айнымалысы 
болуы керек. Әйтпесе, бір құсбелгі қосулы болса, екіншісі өшіріледі, себебі жалпы tkinter 
айнымалысының мәні өзгереді және бірінші құсбелгінің onvalue опциясының мәніне тең 
болмайды. 
from tkinter import * 
root = Tk() 
def show(): 
s = f'{var1.get()}, ' \ 
f'{var2.get()}' 
lab['text'] = s 
frame = Frame() 
frame.pack(side=LEFT) 
var1 = BooleanVar() 
var1.set(0) 
c1 = Checkbutton(frame, text="First", 
variable=var1, 
onvalue=1, offvalue=0, 
command=show) 
c1.pack(anchor=W, padx=10) 
var2 = IntVar() 
var2.set(-1) 
c2 = Checkbutton(frame, text="Second", 
variable=var2, 
onvalue=1, offvalue=0, 
command=show) 
c2.pack(anchor=W, padx=10) 
lab = Label(width=25, height=5, bg="lightblue") 
lab.pack(side=RIGHT) 
root.mainloop() 


28 
Onvalue опциясының көмегімен қосылған құсбелгінің айнымалысымен байланысқан 
мән орнатылады. Ал Offvalue қасиеті- қосылмаған жағдайда . Бұл жағдайда бағдарламаны 
іске қосқан кезде екі құсбелгі де өшіріледі, өйткені set әдісі арқылы onvalue-ден сәйкес 
мәндер орнатылды.
Off value опциясын көрсетпеуге болады. Алайда, егер ол болса, құсбелгінің өшірілгенін 
бақылауға болады. Select және deselect әдістерінің көмегімен құсбелгілерді бағдарламалық 
түрде қосуға және өшіруге болады. Бұл радио батырмаларына да қатысты. 
from tkinter import * 
class CheckButton: 
def __init__(self, master, title): 
self.var = BooleanVar() 
self.var.set(0) 
self.title = title 
self.cb = Checkbutton( 
master, text=title, variable=self.var, 
onvalue=1, offvalue=0) 
self.cb.pack(side=LEFT) 
def ch_on(): 
for ch in checks: 
ch.cb.select() 
def ch_off(): 
for ch in checks: 
ch.cb.deselect() 
root = Tk() 
f1 = Frame() 
f1.pack(padx=10, pady=10) 
checks = [] 
for i in range(10): 
checks.append(CheckButton(f1, i)) 
f2 = Frame() 
f2.pack() 
button_on = Button(f2, text="Все ВКЛ", 
command=ch_on) 
button_on.pack(side=LEFT) 
button_off = Button(f2, text="Все ВЫКЛ", 
command=ch_off) 
button_off.pack(side=LEFT) 
root.mainloop() 


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет