Python gui开发之tkinter

tk  inter

第一个窗口

from Tkinter import *
Tk().mainloop()

 当前线程调用mainloop()后变进入事件循环,后面代码被阻塞。

想创建多个窗口的话

from Tkinter import *
from threading import *

for i in range(5):
    Thread(target=Tk().mainloop).start()

print 2333
sys.stdout.flush()
#2333

 ++上面代码有时会导致界面卡死,推荐把ui操作放在同一线程中,创建多窗口用 Toplevel()

在mainloop线程中多次调用Tk().mainloop()不会造成卡死(可以创建多窗口,且mainloop线程数不会增加)

 

 

创建按钮

 relXX属性代表与主窗口大小的相对值 0~1

from Tkinter import *
top=Tk()

b=Button(top,text='click')
b.place(relx=0, rely=0.5, relwidth=1, relheight=0.1)

top.mainloop()

事件处理

from Tkinter import *
top=Tk()
b=Button(top,text='click')
b.place(relx=0, rely=0.5, relwidth=1, relheight=0.1)

def foo(event):
    btn=event.widget
    btn['text']='clicked!'

b.bind('<Button>',foo)

top.mainloop()

 还可以在创建按钮的时候直接绑定回调方法 Button(top,  command=foo) 事件回调的时候没有event对象,不能操作触发按钮,不推荐使用。

 

posted @ 2015-10-17 07:34  QGB  阅读(1042)  评论(0编辑  收藏  举报