文章目录
Tkinter窗口1. lable、button2. Entry、Text3. listbox 列表4. Radiobutton5. scale尺寸6. Checkbutton
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
()
结果: