Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。
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中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟关系。
#导入tkinter 包
import tkinter
window=tkinter.Tk()#创建窗口对象
window.geometry("500x300")#定义窗口大小
window.title("My Window")#窗口的名称
# 在窗口中添加文本标签,使用tkinter.Lable来添加
lable=tkinter.Label(text='Hello!this is Tkinter', bg='red', font=('仿宋', 15), width=30, height=2)
#bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
#当然,若只是想让字符显示在窗口中,并不设置背景与字体等,可以直接这样写:
# lable=thinter.Lable("Hello!this is Tkinter")
lable.pack()#将文本标签锁定
window.mainloop()
Button窗口部件简单说明:
Button(按钮)部件是一个标准的Tkinter窗口部件,用来实现各种按钮。按钮能够包含文本或图象,并且你能够将按钮与一个Python函数或方法相关联。当这个按钮被按下时,Tkinter自动调用相关联的函数或方法。
按钮仅能显示一种字体,但是这个文本可以跨行。另外,这个文本中的一个字母可以有下划线,例如标明一个快捷键。默认情况,Tab键用于将焦点移动到一个按钮部件。
简言之,按钮部件用来让用户说“马上给我执行这个任务”,通常我们用显示在按钮上的文本或图象来提示。按钮通常用在工具条中或应用程序窗口中,并且用来接收或忽略输入在对话框中的数据。关于按钮和输入的数据的配合,可以参看Checkbutton和Radiobutton部件。
Button部件使用语法:
btn=tkinter.Button(window,text=“确定”,command=回调函数名称)
#导入tkinter 包
import tkinter
window=tkinter.Tk()#创建窗口对象
window.geometry("500x300")#定义窗口大小
window.title("My Window")#窗口的名称
# 将Lable标签中的文本变量设置为字符型的,并用var来接收
var=tkinter.StringVar()
# 在窗口中添加文本标签,使用tkinter.Lable来添加,但是将窗口中的文本为文本变量形式,究竟要赋什么值,要看var是什么了
lable=tkinter.Label(textvariable=var, bg='red', font=('仿宋', 15), width=30, height=2)
#bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
lable.pack()#将文本标签锁定
def hit():
var.set("hello!this is tkinter")
#定义按钮
btn=tkinter.Button(text="确定",font=('Arial', 12), width=10, height=1,command=hit)
btn.pack()
window.mainloop()
Entry是tkinter类中提供的的一个单行文本输入域,用来输入显示一行文本
import tkinter
window=tkinter.Tk()#创建窗口对象
window.geometry("500x300")#定义窗口大小
window.title("My Window")#窗口的名称
h1=tkinter.Entry(window,show="*",font=('Arial',20))#以密文形式显示
h1.pack()
h2=tkinter.Entry(window,show=None,font=('Arial',20))#以明文形式显示
h2.pack()
window.mainloop()
#1.导入tkinter 包
import tkinter
#2.定义窗口的基本信息
window=tkinter.Tk()#创建窗口对象
window.geometry("500x300")#定义窗口大小
window.title("My Window")#窗口的名称
var1=tkinter.StringVar()
#3。在窗口中添加lable标签,用来显示选中的选项 用var1来接收
lable1=tkinter.Label(window,textvariable=var1,background='yellow',fg='red',font=('Arial',20),width=10,height=2)
lable1.pack()
#5.创建一个方法用于按钮的点击事件
def btn_hit():
value=listbox.get(listbox.curselection())#获取当前选中文本
var1.set(value)
#4.创建一个按钮
btn=tkinter.Button(window,text="print selection",width=15,height=2,bg='green',command=btn_hit)
#注意command后面的函数不能加(),否则,不点击按钮就直接执行函数了
btn.pack()
#6.创建listbox并为其添加内容
var2=tkinter.StringVar()
var2.set((1,2,3,4,5,6))#为var2 置值
# 6.1创建listbox
listbox=tkinter.Listbox(window,listvariable=var2)#将var2 的值赋给listbox
#6.2 创建一个列表,并将列表中的值循环加入listbox中
list=[7,8,9]
for item in list:
listbox.insert(item)
#不要忘记将listbox进行锁定哟
listbox.pack()
window.mainloop()
运行结果如下:
messageBox:用于显示应用消息的消息框,实际上就相当于我们平时所看到的弹窗(提示对话框),
代码如下:
#1.导入tkinter 包
import tkinter
import tkinter.messagebox
#2.定义窗口的基本信息
window=tkinter.Tk()#创建窗口对象
window.geometry("500x300")#定义窗口大小
window.title("My Window")#窗口的名称
#3.创建一个方法用于按钮的点击事件
def btn_hit():
tkinter.messagebox.showinfo(title="hi",message='你好!')#使用showinfo提示信息对话框
# tkinter.messagebox.showerror(title="hi",message="出错了")#使用showerror来提示出错对话框
# tkinter.messagebox.showwarning(title="hi",message='警告!')#使用showwarning来提示警告对话框
# print(tkinter.messagebox.askquestion(title="hi",message="你好!"))#使用askquestion来提示选择对话框,选择内容为是/否
# print(tkinter.messagebox.askyesno(title="hi",message="你好!"))#使用askyesno来提示选择对话框,返回true false
#4.创建一个按钮
btn=tkinter.Button(window,text="btn_hit",width=15,height=2,bg='green',command=btn_hit)
#注意command后面的函数不能加(),否则,不点击按钮就直接执行函数了
btn.pack()
window.mainloop()
点击你好返回yes,点击否返回no(对应的是showquestion)
点击是返回true,点击否返回false,对应的是askyesno