Tkinter示例
效果如下:
代码如下(兼容python2.7.9和python3.6:主要处理了不同version中的module name的差异,采用的方式是import ...as.. 语句,通过as的重命名实现。):
(涉及到python Tkinter中很多概念,对类似的widget故意采用了不同的配置,可以运行观察下效果。可作入门用)
############################################################
# A simple example to show some concepts of tkinter
############################################################
import sys
def buttoncmd(btn):
a=btn["text"]
tkmeasbox.showinfo("Button Pressed",a)
label["text"]="show "+a
def buttoncmdok():
a=cb.get()
print(a)
if __name__ == '__main__':
myversion = sys.version
myversionCheck = myversion[0]
if (myversionCheck=='3'):
import tkinter as tk
from tkinter import ttk as ttk
from tkinter import messagebox as tkmeasbox
from tkinter import filedialog as filedialog
else:
import Tkinter as tk
import ttk as ttk
import tkMessageBox as tkmeasbox
import tkFileDialog as filedialog
top = tk.Tk()
top.geometry('300x100+300+300')
top.title("Tkinter Test")
#frames widget
Frame0 = tk.Frame(top)
Frame1 = tk.Frame(top)
Frame2 = tk.Frame(top)
#frames position
Frame0.grid(sticky="WNES",column=0,row=0)
Frame1.grid(sticky="WNES",column=0,row=1)
Frame2.grid(sticky="WNES",column=0,row=2)
#configure frame size
top.rowconfigure(0, weight=1)
top.rowconfigure(1, weight=3)
top.rowconfigure(2, weight=1)
top.columnconfigure(0,weight=1)
#combobox
cb = ttk.Combobox(Frame0,values=["test0","test1","test2","test3"])
cb.set("testnull")
#label
label=tk.Label(Frame0,text="show some info here!")
cb.grid(sticky="WNES",column=0,row=0,in_=Frame0)
label.grid(sticky="WNS",column=1,row=0,in_=Frame0)
Frame0.columnconfigure(0,weight=4)
Frame0.columnconfigure(1,weight=1)
Frame0.rowconfigure(0, weight=1)
#button1~3
button1 =tk.Button(Frame1,text="Machine1",command=lambda:buttoncmd(button1))
button2 =tk.Button(Frame1,text="Machine2",command=lambda:buttoncmd(button2))
button3 =tk.Button(Frame1,text="Machine3",command=lambda:buttoncmd(button3))
button1.grid(sticky="WNES",column=0,row=0,in_=Frame1)
button2.grid(sticky="NS",column=1,row=0,in_=Frame1)
button3.grid(sticky="ENS",column=2,row=0,in_=Frame1)
Frame1.columnconfigure(0,weight=1)
Frame1.columnconfigure(1,weight=1)
Frame1.columnconfigure(2,weight=1)
Frame1.rowconfigure(0, weight=1)
button4 =tk.Button(Frame2,text="OPEN",command=lambda:filedialog.askopenfilename(title='OPEN', filetypes=[('Python', '*.py *.pyw'), ('All Files', '*')]))
button5 =tk.Button(Frame2,text="SAVE",command=lambda:filedialog.asksaveasfilename(title='SAVE', initialdir='d:', initialfile='hello.py'))
button6 =tk.Button(Frame2,text="OK",command=buttoncmdok)
button7 =tk.Button(Frame2,text="EXIT",command=top.destroy)
button4.grid(sticky="NS",in_=Frame2,column=0,row=0)
button5.grid(sticky="NS",in_=Frame2,column=1,row=0)
button6.grid(sticky="NS",in_=Frame2,column=2,row=0)
button7.grid(sticky="NS",in_=Frame2,column=3,row=0)
Frame2.columnconfigure(0,weight=1)
Frame2.columnconfigure(1,weight=1)
Frame2.rowconfigure(0, weight=1)
top.mainloop()
相关:
http://blog.csdn.net/ygyoe/article/details/44360677