Tkinter
Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口
- 1、Tkinter 模块元素简要说明
- 2、常用窗口部件及简要说明:
Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下:
Button:一个简单的按钮,用来执行一个命令或别的操作。
Canvas:组织图形。这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。
Checkbutton:代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换。
Entry:文本输入域。
Frame:一个容器窗口部件。帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。
Label:显示一个文本或图象。
Listbox:显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。
Menu:菜单条。用来实现下拉和弹出式菜单。
Menubutton:菜单按钮。用来实现下拉式菜单。
Message:显示一文本。类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。
Radiobutton:代表一个变量,它可以有多个值中的一个。点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。
Scale:允许你通过滑块来设置一数字值。
Scrollbar:为配合使用canvas, entry, listbox, and text窗口部件的标准滚动条。
Text:格式化文本显示。允许你用不同的样式和属性来显示和编辑文本。同时支持内嵌图象和窗口。
Toplevel:一个容器窗口部件,作为一个单独的、最上面的窗口显示。
messageBox:消息框,用于显示你应用程序的消息框。(Python2中为tkMessagebox)
注意在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟关系。
窗口
# 窗口
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x100')
#
window.mainloop()
1. lable、button
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x100')
#
var = tk.StringVar()
l = tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,height=2)
l.pack()
on_hit = False
def hit_me():
global on_hit
if on_hit == False:
on_hit=True
var.set('you hit me')
else:
on_hit=False
var.set('ha')
b = tk.Button(window,text='hit me',width=15,height=2,command=hit_me)
b.pack()
window.mainloop()
- 结果:
2. Entry、Text
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x200')
#
var = tk.StringVar()
e=tk.Entry(window,show='2')
e.pack()
def insert_point():
var = e.get()
t.insert('insert',var)
def insert_end():
var = e.get()
t.insert(2.2,var)
b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b1.pack()
b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end)
b2.pack()
t = tk.Text(window,height=2)
t.pack()
window.mainloop()
- 结果:
3. listbox 列表
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x300')
#
var1 = tk.StringVar()
l = tk.Label(window,textvariable=var1,bg='yellow',width=4)
l.pack()
def print_selection():
value = lb.get(lb.curselection())
var1.set(value)
b1 = tk.Button(window,text='print selection',width=15,height=2,command=print_selection)
b1.pack()
var2 = tk.StringVar()
var2.set((11,22,33))
lb = tk.Listbox(window,listvariable=var2)
list_items=[1,2,3,4]
for item in list_items:
lb.insert('end',item)
lb.insert(1,'first')
lb.insert(2,'second')
lb.delete(2)
lb.pack()
window.mainloop()
- 结果:
4. Radiobutton
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x300')
#
var = tk.StringVar()
#
l = tk.Label(window,text='empty',bg='yellow',width=20)
l.pack()
def print_selection():
l.config(text='you have selection'+ var.get())
r1=tk.Radiobutton(window,text='option A',variable=var,value='A',command=print_selection)
r1.pack()
r2=tk.Radiobutton(window,text='option B',variable=var,value='B',command=print_selection)
r2.pack()
r3=tk.Radiobutton(window,text='option C',variable=var,value='C',command=print_selection)
r3.pack()
window.mainloop()片
- 结果:
5. scale尺寸
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x300')
#
l = tk.Label(window,bg='yellow',width=20,text='empty')
l.pack()
def print_selection(v):
l.config(text='you have selection'+ v)
s = tk.Scale(window,label='try me',from_=5,to=11,orient=tk.HORIZONTAL,
length=200,showvalue=0,tickinterval=3,resolution=0.01,command=print_selection)
s.pack()
window.mainloop()
- 结果:
6. Checkbutton
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x300')
#
l = tk.Label(window,bg='yellow',width=20,text='empty')
l.pack()
def print_selection():
if(var1.get()==1)and(var2.get()==0):
l.config(text='I love only Python ')
elif (var1.get()==0)and (var2.get()==1):
l.config(text='I love only C++')
elif (var1.get()==0)and(var2.get()==0):
l.config(text='I do not love either')
else:
l.config(text='I love both')
var1=tk.IntVar()
var2=tk.IntVar()
c1 = tk.Checkbutton(window,text='Python',variable=var1,onvalue=1,offvalue=0,command=print_selection)
c2 = tk.Checkbutton(window,text='C++',variable=var2,onvalue=1,offvalue=0,command=print_selection)
c1.pack()
c2.pack()
window.mainloop()
- 结果: