Title: Python Essential ???
1Python Essential ???
2001. 4. 25(?)
??? ???
2? Tkinter
- Tkinter ??( Tkinterface)? Tk GUI toolkit? ????
?? ? - ?? ???????.
- Tk ? Tkinter? Linux/Unix , Windows, Macintosh ??
???? - import Tkinter ?? from Tkinter from
- ??? ?????? ??
- rootTk()
- Tkinter? ????? ??? Tk root??? ???? ??. root
- ??? ?? ?? ????? ?? ? ????? ? ? ?? ?
- ?? ? ??.
- w Label(root, text"Hello, world!")
- w.pack()
- Label ??? ???, ??? ?? ??? ?? ??? ? ??.
- ???? ???? ??? text ??? ????. ???, pack()
- ? ?????, ??? ???? ?? ??? ???? ? ?
- ?? ??? ?? ???.
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
3? ?? Widget ??
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
- from Tkinter import rootTk()
- root.mainloop()
. - ?? ??
- rootTk()
- ??? widget? ???.
- root.mainloop()
- ? ????? ???? ?? ? ?? ??? ??? ???. ???
- ?????? ?? ??????? ???? ???? ??(?????
- ????? ????). root ???? pack?? ??? ?????
- ???????
????
4? PUSH button
from Tkinter import class App def
__init__(self, master) frame
Frame(master) frame.pack()
???? ??? ??. self.button Button(frame,
text"QUIT", fg"red", commandframe.quit) self
.button.pack(sideLEFT) self.w
Button(frame, text"Hello", commandself.say_hi)
self.w.pack() def say_hi(self) print
"hi there, everyone!" root Tk() app
App(root) root.mainloop()
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
?? ??
Hello ?????
5? RADIO button(1)
from Tkinter import class App def
__init__(self, master) frame
Frame(master) frame.pack()
MODES ("Monochrome", "1"), ("Grayscale",
"L"), ("True color", "RGB"), ("Color separation",
"CMYK") ??? ?? ?? self.v
StringVar() self.v.set("L") ???
?? for text, mode in MODES MODES? ???
????? ?? b Radiobutton(frame,
texttext, variableself.v, valuemode,
commandself.rb) b.pack(anchorW,
fill'x') fill'x' ??? x? ??? ???
self.w Label(master, textself.v.get())
self.w.pack() def rb(self)
self.w.configure(textself.v.get()) root
Tk() app App(root) root.mainloop()
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
6? RADIO button(2)
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
- ????
- ??? ???? ??? (??? ???, ?? ?)
- MODES ("Monochrome", "1"), ("Grayscale",
"L"), ("True color", "RGB"), ("Color
separation", "CMYK") - ?? ?? ?? ??? ???? ? ??? ????? ? ??? ??
?? ??? ???(MODES)? ???. ????? ??? ????.
???? ??? ??(v)? ???? ??? ???? ??? ?? ??? ?????
??. ?? ?? v.set('L') ????.
????
If gt b Radiobutton(indicatoron0,
texttext,variableself.v, valuemode,commandself
.rb)
7? Packer ?? ??
- Packer
- '?? ?? ?? ?? ????, ??? ???? ??? ???? ????
- ?? ???.
- ????
- from Tkinter import
- root Tk()
- widget1 Button(root, text"Widget1")
- widget2 Button(root, text"Widget2")
- widget3 Button(root, text"Widget3")
- widget1.pack(sideLEFT)
- widget2.pack(sideLEFT)
- widget3.pack(sideLEFT)
- root.mainloop()
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
????
- If gt widget1.pack(sideTOP)
- widget2.pack(sideTOP)
- widget3.pack(sideTOP)
8? Widget ??/???
- Widget ??
- ?? ????? ??? ??? ??? ?? after? ??
- ex) widget1.pack(afterwidget)
- ?? ???? ??? ??? ??? ?? before? ??
- ex) widget1.pack(beforewidget)
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
- Widget ???
- pack method? ???? fillX, fillY ? ???? ? ?? ????
???? - ???? ???.
Widget ?? ????
Widget ??? ????
9? ???? ???(1)
from Tkinter import def print_msg(msg) w.co
nfigure(textmsg)def menu_new(eventNone) pr
int_msg("New called")def menu_open(eventNone)
print_msg("Open called")def
menu_about(eventNone) print_msg("About
called")def menu_exit(eventNone) root.quit
() root.destroy()rootTk()creat
menumenuMenu(root)
??? ??? ??.menu? ????? filemenuroot.config(menum
enu) root?? menu ??? ????.
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
10? ???? ???(2)
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
wLabel(root, text"Hello world!", width50,
height3) ????? ??? Label ??.w.pack()fileme
nuMenu(menu) menu? ??? ?? ??? ??
?? filemenu? ???.menu.add_cascade(label"File",
menufilemenu) menu ??? filemenu?
????.filemenu.add_command(label"New",underline0
,accelerator"CtrlN",commandmenu_new)
????
??.filemenu.add_command(label"Open",underline0,
accelerator"CtrlO",commandmenu_open)filemenu.a
dd_separator() ??? ?????.filemenu.add_c
ommand(label"Exit",underline1,accelerator"Altx
,commandmenu_exit)helpmenuMenu(menu)
menu? ??? ?? ??? ?? ?? helpmenu?
???.menu.add_cascade(label"Help",
menuhelpmenu)helpmenu.add_command(label"About",
commandmenu_about)root.bind("ltControl-ngt",menu
_new)root.bind("ltControl-ogt",menu_open)root.bind
("ltAlt-Key-xgt",menu_exit)root.mainloop()
11? Event and Bindings
- ?? ??? bind ???? ???? ???? ???? ???
- ?? ?? ? ??. ?? event? ???? ???? ???? ha
- ndler? ????.
- ??) widget.bind(event.handler)
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
- Event? ??
- ltButton-1gt ?????? ?? ??? ???. 1? ??, 2? ???,
3? ??? ????. - ltB1-Motiongt ??? 1? ????? ???? ????.
- ltEntergt ??? ???? ?? ??? ????.
- ltLeavegt ??? ???? ??? ????.
- ltShift-Upgt ???? ????? ?? ???? ?? ??? ???
???. - ltConfiguregt ??? ??? ???. ??? ??? ??? event???
width,height ??? - ????.
- Event? ??
- ltWidgetgt ???? ???? ??. ??? ?? Tkinter ??
??????. - ltx,ygt ?? ???? ??
- ltchargt ???? ????? ??
- ltkeysymgt ? ??
- ltkeycodegt ? ??
- ltwidth,heightgt ??? ??? ??(??)
12? ???? ? ???
Tkinter ?? widget?? Push button Radio
button Packer ???? Widget ?? ???? ??? ????
??? ????
- Programming Python 2nd Edition
- (Mark Lutz, OREILLY)
- -http//www.pythonware.com/library/tkinter
- /introduction/index.htm
- Teach your self Python in 24 hours
- (SAMS)