Файтон график интерфэйс
Tkinter
Мандах Бүртгэл ДС-МТТ
Лекц - 12
Агуулга
• Tkinter гэж юу вэ?
• GUI хэрэгслүүд дээр ажиллах
• Хүрээ(frame) үүсгэх
• Товч(button) үүсгэх
• Текст оруулах, харуулах хэрэгсэл үүсгэх
• CheckButton үүсгэх
• Radio button үүсгэх
Tkinter гэж юу вэ?
• Tkinter бол файтон хэлэнд зориулсан
авсаархан график интерфэйс юм. Мөн
файтон хэлтэй адил нээлттэй эх.
• Tk == Toolkit
• Tkinter == Toolkit interface
• Tcl == Toolkit Control Language
• Tk нь мөн Perl хэлэнд ашиглагддаг.
Давуу тал
• Үечлэгдсэн бүтэцтэй - Layered
implementation
• Ашиглахад хялбар - Accessibility
• Авсаархан - Portability
• Цаашид хөгжих боломжтой - Availability
Энгийн програм
• from Tkinter import *
• root = Tk( )
• root.title("A simple application")
• root.mainloop( )
• Toolkit ашиглахын тулд Tkinter санг оруулах ёстой.
Энгийн програм
• from Tkinter import *
• #Классууд болон функцууд агуулна.
• #Хэрэглэгчийн график интерфэйс үүсгэхэд
шаардлагатай бүх зүйлийг Tkinter гэсэн
namespace –р оруулж ирдэг.
• root= Tk();
• #Үндсэн(root) нэг цонх үүсгэнэ. Үндсэн
цонхонд бусад tool үүдийг оруулж ирнэ.
• #үүнийг ямар нэг виджет үүсгэхээс өмнө
заавал үүсгэх ёстой.
Энгийн програм
• root.title(‘Title window')
• #Root эсвэл хүрээний гарчиг онооно.
• root.mainloop()
• #Файтон програмд хэрэглэгчийн интерфэйс
үүсгэхэд loop гэсэн эвент ажилладаг. Энэ нь
цонх хаагдах хүртэл үргэлжлэнэ.
Програмын гаралт
• Windows Linux
Widget-үүд
• Tkinter-ын бүрэлдэхүүн хэсгүүдийг
Widget гэж нэрлэдэг.
• Widget нь ОХП-н объект гэсэн
ойлголттой адилхан. Бүхий л widget-
үүд нь Widget гэсэн классаас
удамшдаг.
Widget-үүд
• Toplevel
• Frame
• Label
• Button
• Entry
• Radiobutton
• Checkbutton
• Menu
• Message
• Text
• Scrollbar
• Listbox
• Scale
• Canvas
Виджетүүд
Menu bar
Label
Text area (for geometry input)
Text entry
Radio buttons
Checkbox
Widget-н сонголтууд
• Widget – н сонголтууд гэдэг нь тухайн виджетийн
аттрибутууд юм. Бүх виджетүүд адилхан
аттрибуттай байдаггүй. Виджетүүд нь өөрийн
онцлогоос хамаарч өөр өөр аттрибут авдаг, жишээ
нь: ямар нэг текст авдаг виджет байвал бүгд
адилхан ‘text’ гэсэн аттрибут авна. ‘Padx’
аттрибут нь өөрөө болон өөр виджетийн
хоорондох зайг зааж өгөх гэх мэт.
Hello world
• from Tkinter import *
• root = Tk()
• w=Label(root, text="Hello, World!")
• w.pack()
• root.mainloop()
Pack() метход
• Бичигдэх хэлбэр: widget.pack( Сонголтууд )
Сонголтууд
• expand: Цонхны хэмжээг өөрчлөх боломжтой
болгох. Үнэн/худал утга авна. (0, 1)
• fill: Өгөгдсөн утгаар дүүргэлт хийнэ. NONE
(default), X (хэвтээ тэнхлэгийн дагуу дүүргэлт
хийнэ), Y (босоо тэнхлэгийн дагуу дүүргэнэ),
BOTH (босоо болон хэвтээ дүүргэлт).
Pack() метход
• side: Parent виджетийн аль хэсэгт
дүрсэлхийг заана: TOP (default), BOTTOM,
LEFT, RIGHT.
• Label() – Дэлгэцэнд label тодорхойлж өгөх
• text= Label() виджетийн аттрибут, текстийн
утга оноох
• pack() - тохирох хэмжээгээр цонх дүрслэх
• mainloop() – Тухайн програм дүрсэлсэн бүх
виджетүүдийг харуулах.
Жишээ 1
from Tkinter import *
root = Tk()
w = Label(root, text="Orange", bg="orange",
fg="white", font="arial")
w.pack()
w = Label(root, text="Green", bg="green",
fg="black", font="arial")
w.pack()
w = Label(root, text="Blue", bg="blue",
fg="white", font="arial")
w.pack()
mainloop()
Жишээ 2
from Tkinter import *
root = Tk()
w = Label(root, text="Orange", bg="orange", fg="white",
font="arial")
w.pack(fill=X)
w = Label(root, text="Green", bg="green", fg="black",
font="arial")
w.pack(fill=X)
w = Label(root, text="Blue", bg="blue", fg="white",
font="arial")
w.pack(fill=X)
mainloop()
Үр дүн
• Жишээ 2• Жишээ1
Жишээ 3
from Tkinter import *
root = Tk()
w = Label(root, text="Red", bg="red",
fg="white") w.pack(side=LEFT)
w = Label(root, text="Green",
bg="green", fg="black")
w.pack(side=LEFT)
w = Label(root, text="Blue",
bg="blue", fg="white")
w.pack(side=LEFT)
mainloop()
Жишээ
from Tkinter import *
root = Tk()
listbox = Listbox(root)
listbox.pack(fill=BOTH,
expand=1)
for i in range(20):
listbox.insert(END, str(i))
mainloop()
Жишээ
from Tkinter import *
title=‘FRAME'
root = Tk()
f=Frame(root,borderwidth=1)
f.pack(side=LEFT,padx=50,pady=50)
L=Label(root,text='frame')
L.pack(side=LEFT)
root.title(title)
root.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 12 tkinter

  • 1.
  • 2.
    Агуулга • Tkinter гэжюу вэ? • GUI хэрэгслүүд дээр ажиллах • Хүрээ(frame) үүсгэх • Товч(button) үүсгэх • Текст оруулах, харуулах хэрэгсэл үүсгэх • CheckButton үүсгэх • Radio button үүсгэх
  • 3.
    Tkinter гэж юувэ? • Tkinter бол файтон хэлэнд зориулсан авсаархан график интерфэйс юм. Мөн файтон хэлтэй адил нээлттэй эх. • Tk == Toolkit • Tkinter == Toolkit interface • Tcl == Toolkit Control Language • Tk нь мөн Perl хэлэнд ашиглагддаг.
  • 4.
    Давуу тал • Үечлэгдсэнбүтэцтэй - Layered implementation • Ашиглахад хялбар - Accessibility • Авсаархан - Portability • Цаашид хөгжих боломжтой - Availability
  • 5.
    Энгийн програм • fromTkinter import * • root = Tk( ) • root.title("A simple application") • root.mainloop( ) • Toolkit ашиглахын тулд Tkinter санг оруулах ёстой.
  • 6.
    Энгийн програм • fromTkinter import * • #Классууд болон функцууд агуулна. • #Хэрэглэгчийн график интерфэйс үүсгэхэд шаардлагатай бүх зүйлийг Tkinter гэсэн namespace –р оруулж ирдэг. • root= Tk(); • #Үндсэн(root) нэг цонх үүсгэнэ. Үндсэн цонхонд бусад tool үүдийг оруулж ирнэ. • #үүнийг ямар нэг виджет үүсгэхээс өмнө заавал үүсгэх ёстой.
  • 7.
    Энгийн програм • root.title(‘Titlewindow') • #Root эсвэл хүрээний гарчиг онооно. • root.mainloop() • #Файтон програмд хэрэглэгчийн интерфэйс үүсгэхэд loop гэсэн эвент ажилладаг. Энэ нь цонх хаагдах хүртэл үргэлжлэнэ.
  • 8.
  • 9.
    Widget-үүд • Tkinter-ын бүрэлдэхүүнхэсгүүдийг Widget гэж нэрлэдэг. • Widget нь ОХП-н объект гэсэн ойлголттой адилхан. Бүхий л widget- үүд нь Widget гэсэн классаас удамшдаг.
  • 10.
    Widget-үүд • Toplevel • Frame •Label • Button • Entry • Radiobutton • Checkbutton • Menu • Message • Text • Scrollbar • Listbox • Scale • Canvas
  • 11.
    Виджетүүд Menu bar Label Text area(for geometry input) Text entry Radio buttons Checkbox
  • 13.
    Widget-н сонголтууд • Widget– н сонголтууд гэдэг нь тухайн виджетийн аттрибутууд юм. Бүх виджетүүд адилхан аттрибуттай байдаггүй. Виджетүүд нь өөрийн онцлогоос хамаарч өөр өөр аттрибут авдаг, жишээ нь: ямар нэг текст авдаг виджет байвал бүгд адилхан ‘text’ гэсэн аттрибут авна. ‘Padx’ аттрибут нь өөрөө болон өөр виджетийн хоорондох зайг зааж өгөх гэх мэт.
  • 14.
    Hello world • fromTkinter import * • root = Tk() • w=Label(root, text="Hello, World!") • w.pack() • root.mainloop()
  • 15.
    Pack() метход • Бичигдэххэлбэр: widget.pack( Сонголтууд ) Сонголтууд • expand: Цонхны хэмжээг өөрчлөх боломжтой болгох. Үнэн/худал утга авна. (0, 1) • fill: Өгөгдсөн утгаар дүүргэлт хийнэ. NONE (default), X (хэвтээ тэнхлэгийн дагуу дүүргэлт хийнэ), Y (босоо тэнхлэгийн дагуу дүүргэнэ), BOTH (босоо болон хэвтээ дүүргэлт).
  • 16.
    Pack() метход • side:Parent виджетийн аль хэсэгт дүрсэлхийг заана: TOP (default), BOTTOM, LEFT, RIGHT.
  • 17.
    • Label() –Дэлгэцэнд label тодорхойлж өгөх • text= Label() виджетийн аттрибут, текстийн утга оноох • pack() - тохирох хэмжээгээр цонх дүрслэх • mainloop() – Тухайн програм дүрсэлсэн бүх виджетүүдийг харуулах.
  • 18.
    Жишээ 1 from Tkinterimport * root = Tk() w = Label(root, text="Orange", bg="orange", fg="white", font="arial") w.pack() w = Label(root, text="Green", bg="green", fg="black", font="arial") w.pack() w = Label(root, text="Blue", bg="blue", fg="white", font="arial") w.pack() mainloop()
  • 19.
    Жишээ 2 from Tkinterimport * root = Tk() w = Label(root, text="Orange", bg="orange", fg="white", font="arial") w.pack(fill=X) w = Label(root, text="Green", bg="green", fg="black", font="arial") w.pack(fill=X) w = Label(root, text="Blue", bg="blue", fg="white", font="arial") w.pack(fill=X) mainloop()
  • 20.
  • 21.
    Жишээ 3 from Tkinterimport * root = Tk() w = Label(root, text="Red", bg="red", fg="white") w.pack(side=LEFT) w = Label(root, text="Green", bg="green", fg="black") w.pack(side=LEFT) w = Label(root, text="Blue", bg="blue", fg="white") w.pack(side=LEFT) mainloop()
  • 22.
    Жишээ from Tkinter import* root = Tk() listbox = Listbox(root) listbox.pack(fill=BOTH, expand=1) for i in range(20): listbox.insert(END, str(i)) mainloop()
  • 23.
    Жишээ from Tkinter import* title=‘FRAME' root = Tk() f=Frame(root,borderwidth=1) f.pack(side=LEFT,padx=50,pady=50) L=Label(root,text='frame') L.pack(side=LEFT) root.title(title) root.mainloop()
  • 24.
    Ашигласан материал • 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