目录
Tkinter
Tkinter 组件
可以为界面设置标题
为界面设置大小和位置
label控件
label标签可以显示文本
语法
创建一个简单按钮:
给按钮添加功能
Entry输入控件
语法
点击按钮输出输入框中的内容小程序
Text文本控件
带滚动条的文本显示
Python支持多种图形界面的第三方库,包括:
但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。
Tkinter概念:
我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口;
Tk是一个图形库,支持多个操作系统,使用Tcl语言开发;
Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。
所以,我们的代码只需要调用Tkinter提供的接口就可以了。
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。
目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:
控件 | 描述 |
---|---|
Button | 按钮控件;在程序中显示按钮。 |
Canvas | 画布控件;显示图形元素如线条或文本 |
Checkbutton | 多选框控件;用于在程序中提供多项选择框 |
Entry | 输入控件;用于显示简单的文本内容 |
Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 |
Label | 标签控件;可以显示文本和位图 |
Listbox | 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 |
Menubutton | 菜单按钮控件,由于显示菜单项。 |
Menu | 菜单控件;显示菜单栏,下拉菜单和弹出菜单 |
Message | 消息控件;用来显示多行文本,与label比较类似 |
Radiobutton | 单选按钮控件;显示一个单选的按钮状态 |
Scale | 范围控件;显示一个数值刻度,为输出限定范围的数字区间 |
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. |
Text | 文本控件;用于显示多行文本 |
Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 |
Spinbox | 输入控件;与Entry类似,但是可以指定输入范围值 |
PanedWindow | PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。 |
LabelFrame | labelframe 是一个简单的容器控件。常用与复杂的窗口布局。 |
tkMessageBox | 用于显示你应用程序的消息框。 |
简单示例:创建一个窗口
import tkinter
#创建主窗口
win = tkinter.Tk()
win.mainloop()
win.title("主界面")
设置大小为多少x多少,乘号是小写x。位置是用+号来表示
#设置大小和位置
win.geometry("300x300+200+0")
Python Tkinter 文本框用来让用户输入一行文本字符串。
序号 | 可选项 & 描述 |
---|---|
1 | bg 输入框背景颜色 |
2 | bd 边框的大小,默认为 2 个像素 |
3 | cursor 光标的形状设定,如arrow, circle, cross, plus 等 |
4 | font 文本字体 |
5 | exportselection 默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。 |
6 | fg 文字颜色。值为颜色或为颜色代码,如:'red','#ff0000' |
7 | highlightcolor 文本框高亮边框颜色,当文本框获取焦点时显示 |
8 | justify 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
9 | relief 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
10 | selectbackground 选中文字的背景颜色 |
11 | selectborderwidth 选中文字的背景边框宽度 |
12 | selectforeground 选中文字的颜色 |
13 | show 指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*" |
14 | state 默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled |
15 | textvariable 文本框的值,是一个StringVar()对象 |
16 | width 文本框宽度 |
17 | xscrollcommand 设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。 |
#win父窗体
#text:显示的文本内容
#bg :背景色 fg :字体色
label = tkinter.Label(win,text="good morning,boynextdoor",bg = "blue",fg = "red")
#挂载,显示出来label
label.pack()
#font :字体 大小
label = tkinter.Label(win,text="good morning,boynextdoor",bg = "blue",fg = "red",font = ("宋体",20))
指定text中文本多宽,换行wraplength
label = tkinter.Label(win,text="good morning,boynextdoor",bg = "blue",fg = "red",font = ("宋体",20),wraplength = 50)
Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。
语法格式如下:
w = Button ( master, option=value, ... )
import tkinter
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
button = tkinter.Button(win,text="按钮")
button.pack()
win.mainloop()
使用command来将def定义的方法添加在按钮中,每按一次按钮就使用一次方法
def fun():
print("hello world")
button = tkinter.Button(win,text="按钮",command=fun)
button.pack()
按了三次按钮
设置一个退出方法按钮,点击按钮就会退出这个界面
button2 = tkinter.Button(win,text="退出",command=win.quit)
用于显示简单的文本
语法格式如下:
w = Entry( master, option, ... )
简单的entry输入
import tkinter
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
entry = tkinter.Entry(win)
entry.pack()
win.mainloop()
show 密文显示
entry = tkinter.Entry(win,show="*")
给输入框设置变量
使用variable来绑定变量
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
#绑定变量
e = tkinter.Variable()
entry = tkinter.Entry(win,textvariable=e)
entry.pack()
#e就代表输入框的这个对象
#设置值
e.set("this is a good day")
win.mainloop()
获取输入框内的值 可以使用get
取值,可以使用e.get(),也可以使用entry.get()
先设置一个输入框和一个按钮。然后再设置一个变量去获取输入框内的值,然后再定义一个方法,在方法内打印变量。最后使用command去让方法赋给按钮
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
#定义展示方法
def show():
print(e.get())
# 绑定变量
e = tkinter.Variable()
#设置输入框
entry = tkinter.Entry(win,textvariable = e)
#设置按钮
button = tkinter.Button(win,text="按钮",command = show)
entry.pack()
button.pack()
win.mainloop()
Text | 文本控件;用于显示多行文本 |
一个简单的文本显示
#文本控件
text = tkinter.Text(win,width=30,height=15)
#str字符串内容
str="askfhafojfaijnalfaipjfpaosTkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。"
#将字符串内容放入文本中
text.insert(tkinter.INSERT,str)
text.pack()
scrollbar滚动条显示,在使用滚动条时,需要将滚动条放到窗体的右侧,并且与需要滚动的内容相管理
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. |
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
#文本控件
text = tkinter.Text(win,width=30,height=4)
#创建滚动条
scroll = tkinter.Scrollbar()
#side:将滚动条放到主窗体右侧 fill:将窗体Y侧填充满
scroll.pack(side=tkinter.RIGHT,fill=tkinter.Y)
#文本内容
str="askfhafojfaijnalfaipjfpaosTkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。"
#将字符串内容添加到文本中
text.insert(tkinter.INSERT,str)
#side:将文本放到主窗体左侧 fill:将窗体Y侧填充满
text.pack(side=tkinter.LEFT,fill=tkinter.Y)
#将滚动条和文本text相关联
scroll.config(command = text.yview)
text.config(yscrollcommand = scroll.set)
win.mainloop()
一起学习,一起进步 -.- ,如有错误,可以发评论