combo.get().
Oynaga Checkbutton vidjetini joylash
Interfeys oynasiga checkbutton vidjetini joylash uchun Checkbutton sinfidan foydalaniladi:
from tkinter.ttk import Checkbutton
chk = Checkbutton(oyna, text='Tanlash')
Bundan tashqari, uni Chekbuttonning var parametriga ham uzatish mumkin. Natijada kod quyidagi koʻrinishga keladi:
from tkinter import *
from tkinter.ttk import Checkbutton
oyna = Tk()
oyna.title("Bu-grafik interfeys oynasi")
oyna.geometry('400x250')
chk_state = BooleanVar()
chk_state.set(True) # checkbox holatini tekshirish
chk = Checkbutton(oyna, text='tanlash', var=chk_state)
chk.grid(column=0, row=0)
o
.8-rasm.
yna.mainloop()
Kod ekranda .8-rasmni hosil qiladi.
Oynadai Checkbutton holatini qayd qilish uchun Tkinterning BooleanVar tipidagi oʻzgaruvchisidan foydalanish mumkin. Bu oʻzgaruvchi holatini True tarzida belgilib, Chekbutton sinfiga namunadagi kabi uzatish mumkin. Zarur boʻlsa, uning qiymatini False ga oʻzgartirilsa, tanlash tugmasidagi bayroqacha olib tashlanadi. Shuningdek, BooleanVar oʻrniga IntVar oʻzgaruvchisini 0 yoki 1 qiiymatlari bilan birga qoʻllash mumkun:
chk_state = IntVar()
chk_state.set(0) # False
chk_state.set(1) # True
Bo koʻrsatmalar BooleanVar bilan bir hil natijani ta’minlaydi.
RadioButton vidjetini oʻrnatish
RadioButton vidjeti foydalanuvchilarga interfeys oynasidagi bir nechta varinatlardan birini tanlash inkonini beradi. Oynaga radio tugmasini joylash uchun RadioButton sinfidan foydalaniladi. Oynaga oʻrnatilishi lozim boʻlgan har bir tugma uchun alohida koʻrsatma talab qilinadi. Aks holda ular ishlamaydi:
rad1 = Radiobutton(oyna, text='Birinchi', value=1)
Yuqoridagi interfeys oynasi uchun yozilgan koqni quyidagicha oʻzgartiriladi:
from tkinter import *
from tkinter.ttk import Radiobutton
oyna = Tk()
oyna.title("Bu – grafik interfeys oynasi")
oyna.geometry('400x250')
rad1 = Radiobutton(oyna, text='Birinchi, value=1)
rad2 = Radiobutton(oyna, text='Ikkinchi', value=2)
rad3 = Radiobutton(oyna, text='Uchinchi', value=3)
r
.9-rasm.
ad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
oyna.mainloop()
Kod natijasi .9-rasmda keltilrilgan. Bundan tashqari, bu tugmalardan ihtiyoriy biri uchun command yordamida biror vazifani belgilash mumkin. Bu holda tegishli Radiobutton tugmasi chertilganda uning uchun belgilangan buyruqlar tizimi ishga tushadi. Quyidagi namunaga eʻtibor bering:
rad1 = Radiobutton(oyna, text='Birinchi', value=1, command=clicked)
…
def clicked():
# zarur amallarni yozing
Tanlangan Radiobutton tugmasi yoki uning qiymatini olish uchun oʻzgaruvchi parametrini uzatish va qabul qilish mumkin.
from tkinter import *
from tkinter.ttk import Radiobutton
def clicked():
lb1.configure(text=selected.get())
oyna = Tk()
oyna.title("Bu-grafik interfeys oynasi")
oyna.geometry('400x250')
selected = IntVar()
rad1 = Radiobutton(oyna,text='Birinchi', value=1, variable=selected)
rad2 = Radiobutton(oyna,text='Ikkinchi', value=2, variable=selected)
rad3 = Radiobutton(oyna,text='Uchinchi', value=3, variable=selected)
btn = Button(oyna, text="Tanlang", command=clicked)
l
.10-rasm.
bl = Label(oyna)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
btn.grid(column=3, row=0)
lbl.grid(column=0, row=1)
oyna.mainloop()
Har gal Radiobuttonlardan biri tanlanganda, oʻzgaruvchining tegishli qiymatii ekranga uzatiladi (.10-rasm).
ScrolledText (Tkinterning matnli sohasi) bilan ishlash
Interfeys oynasida maynli soha tashkil qilish uchun ScrolledText sinfidag scrolledText vidjetidan foydalanish mumkin. Bunda ikkinchi va uchinchi parametr sifatida matnli sohaning kengligi va balandligi koʻrsatiladi:
txt = scrolledtext.ScrolledText(oyna, width=X, height=Y).
A
.11-rasm.
gar sohaning kengligi va balandligi koʻrsatilmasa, interfeys oynasi toʻlaligcha matnli sohaga ajratiladi.
from tkinter import *
from tkinter import scrolledtext
oyna = Tk()
oyna.title("Bu-grafik interfeys oynasi")
oyna.geometry('400x250')
txt = scrolledtext.ScrolledText(oyna, width=40, height=10)
txt.grid(column=0, row=0)
oyna.mainloop()
Natijada interfeys oynasi .11-rasmdagi koʻrinishni oladi.
Scrolledtext oynasiga satrli ma’lumotlarni kiritish uchun
txt.insert(INSERT, 'matn satrlari')
funksiyasidan foydalanish mumkin.
Matni maydonni tozalash uchun delete() funksiyasidan foydalaniladi. Uning umumiy koʻrinishi quyidagicha:
Scrolledtext.delete(N, END).
Bu yerda N va END parametrlari tozalanishi lozim boʻlgan sohaning koordinatalari.
Qalqib chiquvchi ma’lumotlarni tashkil qilish
Foydalanuvchilarga interfeys oynasi bilan ishlashda qulaylik yaratish uchun sichqoncha strelkasi vidjetlar ustiga oʻtganda oynaga chiqariladigan qalqib chiquvchi ma’lumotlarni tashkil qilish mumkin. Buning uchun messagebox metodidan foydalanish mumkin:
from tkinter import messagebox
messagebox.showinfo('Sarlavha', 'Matn').
Quyidagi namuna .12a-rasmni hosil qiladi.
from tkinter import *
from tkinter import messagebox
def clicked():
messagebox.showinfo('Sarlavha', 'Matn')
oyna = Tk()
oyna.title("Bu-grafik interfeys oynasi")
oyna.geometry('400x250')
btn = Button(oyna, text='Tanlang', command=clicked)
btn.grid(column=0, row=0)
o
.12a-rasm. .12b-rasm.
yna.mainloop()
Interfeys oynasidagi “Tanlang” tugmasi chertilganda ekranda qalqib chiquvchi matn paydo boʻladi.
Huddi shu usul bilan koddagi istisnoli vaziyatlar haqidagi ogohlantirish va boshqa ma’lumotlarni oynaga uzatish mumkin. Bu maqsadda showwarning yoki showerror funksiyalaridan foydalanish lozim:
messagebox.showwarning('Sarlavha', 'Matn') # ogohlantirish chiqaradi
messagebox.showerror('Sarlavha', 'Matn') # hatolik haqidagi axborot.
Variantlardan birini tanlash oynasi
Interfeys oynasida foydalanuvchilarga “Ha/Yoʻq” qabilidagi variantli ma’lumotlarni taqdim etish uchun messageboxning quyidagi funksiyalaridan biriadn foydalanish mumkin:
res = messagebox.askquestion('Sarlavha', 'Matn')
res = messagebox.askyesno('Sarlavha', 'Matn')
res = messagebox.askyesnocancel('Sarlavha', 'Matn')
res = messagebox.askokcancel('Sarlavha', 'Matn')
res = messagebox.askretrycancel('Sarlavha', 'Matn').
Dasturchi axborot uzatishning bunday usullaridan birini ehtiyojiga koʻra tanlab qoʻllashi mumkin. Yuqorida keltrilgan namunadagi showinfo funksiyasini bu variantlardan biri bilan almashtirilsa, interfeys oynasida .13-rasm koʻrsatiladi. B
.13-rasm.
undan tashqari, qaysi variant tanlanganinin ham aniqlash mumkin. Agar Да, Ok, Yes yoki Retry tugmalaridan biri tanlangan boʻlsa, funksiyaning qiymati – True, qolgan barcha hollarda – False. Yuqoridagi variantlardan faqat bittasi, ya’ni askyesnocancel funksiyasi True/False/None qabilidagi qiymatlardan birini qaytaradi.
Do'stlaringiz bilan baham: |