您的位置:首页 > 编程语言 > Python开发

Python gui开发之tkinter

2015-10-17 07:34 639 查看
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对象,不能操作触发按钮,不推荐使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: