Файтон график интерфэйс
Tkinter (үргэлжлэл)
Мандах Бүртгэл ДС-МТТ
Лекц - 14
Message Box
• tkMessageBox модулийн тусламжтай
дэлгэцэнд мэдээлэх цонх гаргана.
tkMessageBox модуль нь дараах функцуудыг
агуулна.
• showinfo, showwarning, showerror, askquestion,
askokcancel, askyesno, askretrycancel
Эдгээр функцын бичигдэх хэлбэр бүгд адил:
tkMessageBox.function(Гарчиг,Мессеж
, [, сонголтууд]).
Message Box
• Гарчиг нь мэдээлэх цонхны гарчиг
байдалтай харагдана. Мэдээлэх цонхонд
курсор удирдах тэмдэгтүүд ажиллах
боломжтой (“n”).
Сонголтууд
1. icon (тогтмол)
Дэлгэцэнд ямар лого харуулахыг
заана: ERROR, INFO, QUESTION, WARNING
Message Box - Сонголтууд
• message (string)
Дэлгэцэнд харагдах мессеж
• parent (виджет)
Мэдээлэх цонхыг аль цонхны голд гаргахыг
заана. Мэдээлэх цонх хаагдахад курсор parent
цонх дээр идэвхижнэ.
• title (string)
Мэдээлэх цонхны гарчиг
Message Box - Сонголтууд
• type (тогтмол)
• Мэдээлэх цонхны
төрөл: ABORTRETRYIGNORE, OK, OKCANC
EL,RETRYCANCEL, YESNO, YESNOCANCE
L.
• x=tkMessageBox.askyesno("Title", "Message")
• if x==True:
• print x
Tkinter курсор
• Тухайн виджет дээр курсор очих үед курсорын
хэлбэр ямар байхыг заана. Python нь ямар
үйлдлийн систем дээр ажиллаж буйгаас
хамаараад курсорын хэлбэр өөр байж болно.
Дараах курсорын хэлбэрүүд байна.
"arrow","circle", "clock", "cross", "dotbox",
"exchange", "fleur", "heart", "heart", "man",
"mouse", "pirate", "plus", "shuttle", "sizing",
"spider", "spraycan"
"star", "target", "tcross", "trek", "watch"
Tkinter курсор
top = Tkinter.Tk()
B1 = Tkinter.Button(top, text ="watch", cursor="watch")
B2 = Tkinter.Button(top, text ="plus", cursor="plus")
B3 = Tkinter.Button(top, text ="man", cursor="man")
B4 = Tkinter.Button(top, text ="mouse", cursor="mouse")
B5 = Tkinter.Button(top, text ="exchange",
cursor="exchange")
B1.pack()
B2.pack()
B3.pack()
B4.pack()
B5.pack()
top.mainloop()
Tkinter Message Widget
• Message widget –ийн гүйцэтгэх үүрэг нь Label-
тэй төстэй боловч, дэлгэцэнд олон мөр текст
харуулна. Мөн харуулах мессежийг wrap хийх,
харагдах өргөнийг тааруулах боломжтой.
• Ихэнх тохиолдолд энэ widget нь дэлгэцэнд
богино хэмжээний текстэн мессеж харуулахад
хэрэглэгдэх ба үсгийн фонт нь нэг байна.
• Бичигдэх хэлбэр:
Message(master=None, **options)
Tkinter Message Widget
from Tkinter import *
root = Tk()
var = StringVar()
label = Message( root, textvariable=var,
relief=RAISED )
var.set("Text Message n Text Messagen
Text Message")
label.pack()
root.mainloop()
Tkinter Message Widget - Сонголтууд
• anchor=N, NE, E, SE, S, SW, W,NW,
CENTER. aspect= харагдах байдлын
хэмжээ, Өндөр/өргөний харьцааг %-р
илэрхийлэх. Default утга нь 150
(aspect/Aspect)
• Background, bg, borderwidth, bd, cursor, font,
foreground, fg, highlightbackground,
highlightcolor, highlightthickness, justify,
padx, pady, relief, takefocus, text,
textvariable, width
Tkinter Grid дүрслэл
• Grid геометр дүрслэл нь 2 хэмжээст
хүснэгтийг дүрсэлдэг. master widget нь бусад
widget-үүдийг хүснэгтийн мөр баганад
оруулж байрлуулна.
• Grid дүрслэл нь Tkinter – н хамгийн уян хатан
дүрслэл юм. Tkinter-т 3 дэлгэцийн геометр
дүрслэл байдаг ба хамгийн их хэрэглээтэй нь
grid юм.
– Grid
– Pack
– Place
Tkinter Grid дүрслэл
widget.grid( grid_сонголтууд)
• column : Тухайн widget-г аль багананд
байрлуулахыг заана. default утга нь 0.
• columnspan: Тухайн widget нь хэр олон
багананд байрлуулахыг заана. default утга нь 1
• ipadx, ipady : Widget-н хэвтээ болон босоо 2
талаас авах зай, widget-н хүрээнээс гадагш.
• padx, pady : Widget-н хэвтээ болон босоо 2
талаас авах зай, widget-н хүрээнээс дотогш.
• row: Тухайн widget-г аль мөрөнд
байрлуулахыг заана.
Tkinter Grid дүрслэл
• rowspan : Тухайн widget нь хэр олон
мөрөнд байрлуулахыг заана. default утга нь
1
• sticky : Хэрэв widget-г байрлуулж буй нүд
нь widget-н хэмжээнээс том бол widget-н
нүдний аль хэсэгт байрлуулахыг заана.
Default утга нь гол(center). Авах утгууд: N,
E, S, W, NE, NW, SE, SW.
Жишээ
import Tkinter
root = Tkinter.Tk( )
for r in range(10):
for c in range(10):
Tkinter.Label(root,
text='R%s/C%s' %(r,c),
borderwidth=1, padx=5,
pady=2.5).grid(row=r,column=c)
root.mainloop()
Үр дүн
Tkinter Grid дүрслэл
import Tkinter
from Tkinter import Label, Entry
master = Tkinter.Tk()
Label(master, text="First", padx=5,
pady=10).grid(row=0)
Label(master, text="Second", padx=5,
pady=10).grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
master.mainloop()
Жишээ 2:
import Tkinter
from Tkinter import Label, Entry,
Checkbutton, Image, Button
master = Tkinter.Tk()
master.title("Tkinter GRID example")
label1 = Label(master, text="height")
label2 = Label(master, text="width")
entry1 = Entry(master)
entry2 = Entry(master)
checkbutton = Checkbutton(master,
text="Checkbutton")
button1 = Button(master, text="Button1")
Жишээ 2:
• button2 = Button(master, text="Button2")
• label1.grid(row=0, column=1)
• label2.grid(row=1, column=1)
• entry1.grid(row=0, column=2)
• entry2.grid(row=1, column=2)
• checkbutton.grid(columnspan=2, row=3)
• image = Button(master, text="BIG
Button", height=3, width=10)
• image.grid(row=0, column=3,
columnspan=2, rowspan=2, padx=5, pady=5)
Жишээ 2:
• button1.grid(row=3, column=2)
• button2.grid(row=3, column=3)
• master.mainloop()
Tkinter Pack дүрслэл
• Pack дүрслэл нь widget-г мөн мөр
багануудад харуулдаг.
• widget.pack( pack_options )
• Сонголтууд: fill, expand, side
• Pack дүрслэл нь хэрэглэхэд эгийн боловч
зарим шаардлагатай дүрслэл хийх
боломжгүй байдаг. Default утга нь top буюу
бүх widget-үүдийг голлуулан, дээрээс доош
дарааллуулна.
Tkinter Pack дүрслэл
• expand: Хэрэв true утга оноовол widget нь
агуулагдаж буй цонхны хэмжээнд өргөснө.
fill: Өгөгдсөн утгаар widget – г дүүргэнэ.
Default утга нь NONE, X (хэвтээ дүүргэлт),
Y (босоо дүүргэлт), BOTH (хэвтээ болон
босоо дүүргэлт).
• side: Widget-н байрлалыг заана: TOP
(default), BOTTOM, LEFT, RIGHT.
Tkinter Place дүрслэл
• Place дүрслэл нь цонхны хэмжээ болон
байршилыг тодорхой илэрхийлэх
боломжтой. Ө.х цонх болон widget-д
хоорондоо хамааралтай байрлал зааж өгч
болно.
• Бичигдэх хэлбэр:
• widget.place (сонголтууд)
Tkinter Place дүрслэл
• anchor : N, E, S, W, NE, NW, SE, SW, Default утга нь NW
• bordermode : Parent –н гадна талд, эсвэл дотор талд
байхыг тодорхойлно. Default утга нь INSIDE. OUTSIDE.
• height, width : Widget-н өндөр өргөнийг пикселээр
толорхойлно.
• relheight, relwidth : 0,0-1,0-ийн хооронд бутархай утга
авна.Рarent widget-н өндөр өргөнөөс хамаарч widget-н
өндөр өргөнийг тодорхойлно.
• relx, rely : Parent цонхноос хэвтээ босоо авах зай. 0.0 - 1.0
гэсэн бутархай утга авна
Tkinter Place дүрслэл
import tkMessageBox
import Tkinter
root= Tkinter.Tk()
def msg():
tkMessageBox.showinfo( "Message", "Hello World")
B = Tkinter.Button(root, text ="Hello", command = msg)
B1 = Tkinter.Button(root, text ="Button", command = msg)
B.place(bordermode=OUTSIDE, relheight=0.2, relwidth=0.2)
B1.place(bordermode=INSIDE, relheight=0.2, relwidth=0.2,
relx=0.1, rely=0.2)
root.mainloop()
Үр дүн
Хувьсагч класс
• Tkinter-н зарим виджетүүд тусгай хувьсагч
ашиглан утгаа шууд өөрчилж болдог. Ө.х ямар
нэг шалтгаанаар виджетийн утга өөрчлөгдөхөд
хувьсагчийн утга дагаад өөрчлөгдөнө.
• Дараах төрлийн хувьсагч байна:
– StringVar() – Тэмдэгт мөр утга агуулна. Анхны утга
""
– IntVar() – Бүхэл тоон утга агуулна. Анхны утга 0
– DoubleVar() – Бутархай тоон утга агуулна. Анхны
утга 0.0
– BooleanVar() - Бүүлэн утга агуулна, Хэрэв 0 утга
буцаавал Худал, 1 бол Үнэн утга буцаана.
Жишээ
from Tkinter import *
import tkMessageBox
root = Tk()
var = StringVar()
root.geometry("200x200")
root.title("String Variable")
def msg():
tkMessageBox.showinfo("Info", "Huis = "+var.get())
label = Label(root, text="Huis:", justify = LEFT, padx = 25)
label.pack()
RadioMale = Radiobutton(root, text="Male", padx = 25, variable=var,
value="Eregtei", command=msg)
RadioMale.pack()
RadioFemale = Radiobutton(root, text="Female", padx = 25,
variable=var, value="Emegtei", command=msg)
RadioFemale.pack()
mainloop()
Ашигласан материал
• http://www.tutorialspoint.com/python/pytho
n_gui_programming.htm
• http://effbot.org/tkinterbook/
• https://wiki.python.org/moin/TkInter
• https://docs.python.org/2/library/tk.html
• http://usingpython.com/using-tkinter/
• http://www.python-
course.eu/python_tkinter.php

Lecture 14 tkinter

  • 1.
    Файтон график интерфэйс Tkinter(үргэлжлэл) Мандах Бүртгэл ДС-МТТ Лекц - 14
  • 2.
    Message Box • tkMessageBoxмодулийн тусламжтай дэлгэцэнд мэдээлэх цонх гаргана. tkMessageBox модуль нь дараах функцуудыг агуулна. • showinfo, showwarning, showerror, askquestion, askokcancel, askyesno, askretrycancel Эдгээр функцын бичигдэх хэлбэр бүгд адил: tkMessageBox.function(Гарчиг,Мессеж , [, сонголтууд]).
  • 3.
    Message Box • Гарчигнь мэдээлэх цонхны гарчиг байдалтай харагдана. Мэдээлэх цонхонд курсор удирдах тэмдэгтүүд ажиллах боломжтой (“n”). Сонголтууд 1. icon (тогтмол) Дэлгэцэнд ямар лого харуулахыг заана: ERROR, INFO, QUESTION, WARNING
  • 4.
    Message Box -Сонголтууд • message (string) Дэлгэцэнд харагдах мессеж • parent (виджет) Мэдээлэх цонхыг аль цонхны голд гаргахыг заана. Мэдээлэх цонх хаагдахад курсор parent цонх дээр идэвхижнэ. • title (string) Мэдээлэх цонхны гарчиг
  • 5.
    Message Box -Сонголтууд • type (тогтмол) • Мэдээлэх цонхны төрөл: ABORTRETRYIGNORE, OK, OKCANC EL,RETRYCANCEL, YESNO, YESNOCANCE L. • x=tkMessageBox.askyesno("Title", "Message") • if x==True: • print x
  • 6.
    Tkinter курсор • Тухайнвиджет дээр курсор очих үед курсорын хэлбэр ямар байхыг заана. Python нь ямар үйлдлийн систем дээр ажиллаж буйгаас хамаараад курсорын хэлбэр өөр байж болно. Дараах курсорын хэлбэрүүд байна. "arrow","circle", "clock", "cross", "dotbox", "exchange", "fleur", "heart", "heart", "man", "mouse", "pirate", "plus", "shuttle", "sizing", "spider", "spraycan" "star", "target", "tcross", "trek", "watch"
  • 7.
    Tkinter курсор top =Tkinter.Tk() B1 = Tkinter.Button(top, text ="watch", cursor="watch") B2 = Tkinter.Button(top, text ="plus", cursor="plus") B3 = Tkinter.Button(top, text ="man", cursor="man") B4 = Tkinter.Button(top, text ="mouse", cursor="mouse") B5 = Tkinter.Button(top, text ="exchange", cursor="exchange") B1.pack() B2.pack() B3.pack() B4.pack() B5.pack() top.mainloop()
  • 8.
    Tkinter Message Widget •Message widget –ийн гүйцэтгэх үүрэг нь Label- тэй төстэй боловч, дэлгэцэнд олон мөр текст харуулна. Мөн харуулах мессежийг wrap хийх, харагдах өргөнийг тааруулах боломжтой. • Ихэнх тохиолдолд энэ widget нь дэлгэцэнд богино хэмжээний текстэн мессеж харуулахад хэрэглэгдэх ба үсгийн фонт нь нэг байна. • Бичигдэх хэлбэр: Message(master=None, **options)
  • 9.
    Tkinter Message Widget fromTkinter import * root = Tk() var = StringVar() label = Message( root, textvariable=var, relief=RAISED ) var.set("Text Message n Text Messagen Text Message") label.pack() root.mainloop()
  • 10.
    Tkinter Message Widget- Сонголтууд • anchor=N, NE, E, SE, S, SW, W,NW, CENTER. aspect= харагдах байдлын хэмжээ, Өндөр/өргөний харьцааг %-р илэрхийлэх. Default утга нь 150 (aspect/Aspect) • Background, bg, borderwidth, bd, cursor, font, foreground, fg, highlightbackground, highlightcolor, highlightthickness, justify, padx, pady, relief, takefocus, text, textvariable, width
  • 11.
    Tkinter Grid дүрслэл •Grid геометр дүрслэл нь 2 хэмжээст хүснэгтийг дүрсэлдэг. master widget нь бусад widget-үүдийг хүснэгтийн мөр баганад оруулж байрлуулна. • Grid дүрслэл нь Tkinter – н хамгийн уян хатан дүрслэл юм. Tkinter-т 3 дэлгэцийн геометр дүрслэл байдаг ба хамгийн их хэрэглээтэй нь grid юм. – Grid – Pack – Place
  • 12.
    Tkinter Grid дүрслэл widget.grid(grid_сонголтууд) • column : Тухайн widget-г аль багананд байрлуулахыг заана. default утга нь 0. • columnspan: Тухайн widget нь хэр олон багананд байрлуулахыг заана. default утга нь 1 • ipadx, ipady : Widget-н хэвтээ болон босоо 2 талаас авах зай, widget-н хүрээнээс гадагш. • padx, pady : Widget-н хэвтээ болон босоо 2 талаас авах зай, widget-н хүрээнээс дотогш. • row: Тухайн widget-г аль мөрөнд байрлуулахыг заана.
  • 13.
    Tkinter Grid дүрслэл •rowspan : Тухайн widget нь хэр олон мөрөнд байрлуулахыг заана. default утга нь 1 • sticky : Хэрэв widget-г байрлуулж буй нүд нь widget-н хэмжээнээс том бол widget-н нүдний аль хэсэгт байрлуулахыг заана. Default утга нь гол(center). Авах утгууд: N, E, S, W, NE, NW, SE, SW.
  • 14.
    Жишээ import Tkinter root =Tkinter.Tk( ) for r in range(10): for c in range(10): Tkinter.Label(root, text='R%s/C%s' %(r,c), borderwidth=1, padx=5, pady=2.5).grid(row=r,column=c) root.mainloop()
  • 15.
  • 16.
    Tkinter Grid дүрслэл importTkinter from Tkinter import Label, Entry master = Tkinter.Tk() Label(master, text="First", padx=5, pady=10).grid(row=0) Label(master, text="Second", padx=5, pady=10).grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) master.mainloop()
  • 17.
    Жишээ 2: import Tkinter fromTkinter import Label, Entry, Checkbutton, Image, Button master = Tkinter.Tk() master.title("Tkinter GRID example") label1 = Label(master, text="height") label2 = Label(master, text="width") entry1 = Entry(master) entry2 = Entry(master) checkbutton = Checkbutton(master, text="Checkbutton") button1 = Button(master, text="Button1")
  • 18.
    Жишээ 2: • button2= Button(master, text="Button2") • label1.grid(row=0, column=1) • label2.grid(row=1, column=1) • entry1.grid(row=0, column=2) • entry2.grid(row=1, column=2) • checkbutton.grid(columnspan=2, row=3) • image = Button(master, text="BIG Button", height=3, width=10) • image.grid(row=0, column=3, columnspan=2, rowspan=2, padx=5, pady=5)
  • 19.
    Жишээ 2: • button1.grid(row=3,column=2) • button2.grid(row=3, column=3) • master.mainloop()
  • 20.
    Tkinter Pack дүрслэл •Pack дүрслэл нь widget-г мөн мөр багануудад харуулдаг. • widget.pack( pack_options ) • Сонголтууд: fill, expand, side • Pack дүрслэл нь хэрэглэхэд эгийн боловч зарим шаардлагатай дүрслэл хийх боломжгүй байдаг. Default утга нь top буюу бүх widget-үүдийг голлуулан, дээрээс доош дарааллуулна.
  • 21.
    Tkinter Pack дүрслэл •expand: Хэрэв true утга оноовол widget нь агуулагдаж буй цонхны хэмжээнд өргөснө. fill: Өгөгдсөн утгаар widget – г дүүргэнэ. Default утга нь NONE, X (хэвтээ дүүргэлт), Y (босоо дүүргэлт), BOTH (хэвтээ болон босоо дүүргэлт). • side: Widget-н байрлалыг заана: TOP (default), BOTTOM, LEFT, RIGHT.
  • 22.
    Tkinter Place дүрслэл •Place дүрслэл нь цонхны хэмжээ болон байршилыг тодорхой илэрхийлэх боломжтой. Ө.х цонх болон widget-д хоорондоо хамааралтай байрлал зааж өгч болно. • Бичигдэх хэлбэр: • widget.place (сонголтууд)
  • 23.
    Tkinter Place дүрслэл •anchor : N, E, S, W, NE, NW, SE, SW, Default утга нь NW • bordermode : Parent –н гадна талд, эсвэл дотор талд байхыг тодорхойлно. Default утга нь INSIDE. OUTSIDE. • height, width : Widget-н өндөр өргөнийг пикселээр толорхойлно. • relheight, relwidth : 0,0-1,0-ийн хооронд бутархай утга авна.Рarent widget-н өндөр өргөнөөс хамаарч widget-н өндөр өргөнийг тодорхойлно. • relx, rely : Parent цонхноос хэвтээ босоо авах зай. 0.0 - 1.0 гэсэн бутархай утга авна
  • 24.
    Tkinter Place дүрслэл importtkMessageBox import Tkinter root= Tkinter.Tk() def msg(): tkMessageBox.showinfo( "Message", "Hello World") B = Tkinter.Button(root, text ="Hello", command = msg) B1 = Tkinter.Button(root, text ="Button", command = msg) B.place(bordermode=OUTSIDE, relheight=0.2, relwidth=0.2) B1.place(bordermode=INSIDE, relheight=0.2, relwidth=0.2, relx=0.1, rely=0.2) root.mainloop()
  • 25.
  • 26.
    Хувьсагч класс • Tkinter-нзарим виджетүүд тусгай хувьсагч ашиглан утгаа шууд өөрчилж болдог. Ө.х ямар нэг шалтгаанаар виджетийн утга өөрчлөгдөхөд хувьсагчийн утга дагаад өөрчлөгдөнө. • Дараах төрлийн хувьсагч байна: – StringVar() – Тэмдэгт мөр утга агуулна. Анхны утга "" – IntVar() – Бүхэл тоон утга агуулна. Анхны утга 0 – DoubleVar() – Бутархай тоон утга агуулна. Анхны утга 0.0 – BooleanVar() - Бүүлэн утга агуулна, Хэрэв 0 утга буцаавал Худал, 1 бол Үнэн утга буцаана.
  • 27.
    Жишээ from Tkinter import* import tkMessageBox root = Tk() var = StringVar() root.geometry("200x200") root.title("String Variable") def msg(): tkMessageBox.showinfo("Info", "Huis = "+var.get()) label = Label(root, text="Huis:", justify = LEFT, padx = 25) label.pack() RadioMale = Radiobutton(root, text="Male", padx = 25, variable=var, value="Eregtei", command=msg) RadioMale.pack() RadioFemale = Radiobutton(root, text="Female", padx = 25, variable=var, value="Emegtei", command=msg) RadioFemale.pack() mainloop()
  • 28.
    Ашигласан материал • http://www.tutorialspoint.com/python/pytho n_gui_programming.htm •http://effbot.org/tkinterbook/ • https://wiki.python.org/moin/TkInter • https://docs.python.org/2/library/tk.html • http://usingpython.com/using-tkinter/ • http://www.python- course.eu/python_tkinter.php