目录
- 二、Tkinter的常用控件和属性
- 2.1 Tkinter的常用控件
- 2.2 Tkinter控件的基本属性
- 2.3 Tkinter中的窗口对象
二、Tkinter的常用控件和属性
2.1 Tkinter的常用控件
下面列出了 Tkinter 中常用的 15 个控件:
名称 | 说明 |
Button - 按钮 | 点击按钮时触发/执行一些事件(函数) |
Canvas - 画布 | 提供绘制图,比如直线、矩形、多边形等 |
Checkbutton - 复选框 | 多项选择按钮,用于在程序中提供多项选择框 |
Entry - 文本框输入框 | 用于接收单行文本输入 |
Frame - 框架(容器)控件 | 定义一个窗体(根窗口也是一个窗体),用于承载其他控件,即作为其他控件的容器 |
Lable - 标签控件 | 用于显示单行文本或者图片 |
LableFrame - 容器控件 | 一个简单的容器控件,常用于复杂的窗口布局。 |
Listbox - 列表框控件 | 以列表的形式显示文本 |
Menu - 菜单控件 | 菜单组件(下拉菜单和弹出菜单) |
Menubutton - 菜单按钮控件 | 用于显示菜单项 |
Message - 信息控件 | 用于显示多行不可编辑的文本,与 Label控件类似,增加了自动分行的功能 |
messageBox - 消息框控件 | 定义与用户交互的消息对话框 |
OptionMenu - 选项菜单 | 下拉菜单 |
PanedWindow - 窗口布局管理组件 | 为组件提供一个框架,允许用户自己划分窗口空间 |
Radiobutton - 单选框 | 单项选择按钮,只允许从多个选项中选择一项 |
Scale - 进度条控件 | 定义一个线性“滑块”用来控制范围,可以设定起始值和结束值,并显示当前位置的精确值 |
Spinbox - 高级输入框 | Entry 控件的升级版,可以通过该组件的上、下箭头选择不同的值 |
Scrollbar - 滚动条 | 默认垂直方向,鼠标拖动改变数值,可以和 Text、Listbox、Canvas等控件配合使用 |
Text - 多行文本框 | 接收或输出多行文本内容 |
Toplevel - 子窗口 | 在创建一个独立于主窗口之外的子窗口,位于主窗口的上一层,可作为其他控件的容器 |
2.2 Tkinter控件的基本属性
每个控件皆有各自不同的功能,作为控件衍生过来的不同对象,既有相同属性,也有各自独有的属性,我们首先介绍共同属性。
名称 | 说明 |
anchor | 定义控件或者文字信息在窗口内的位置 |
bg | bg 是 background 的缩写,用来定义控件的背景颜色,参数值可以颜色的十六进制数,或者颜色英文单词 |
bitmap | 定义显示在控件内的位图文件 |
borderwidth | 定于控件的边框宽度,单位是像素 |
command | 该参数用于执行事件函数,比如单击按钮时执行特定的动作,可将执行用户自定义的函数 |
cursor | 当鼠标指针移动到控件上时,定义鼠标指针的类型,字符换格式,参数值有 crosshair(十字光标)watch(待加载圆圈)plus(加号)arrow(箭头)等 |
font | 若控件支持设置标题文字,就可以使用此属性来定义,它是一个数组格式的参数 (字体,大小,字体样式) |
fg | fg 是 foreground 的缩写,用来定义控件的前景色,也就是字体的颜色 |
height | 该参数值用来设置控件的高度,文本控件以字符的数目为高度(px),其他控件则以像素为单位 |
image | 定义显示在控件内的图片文件 |
justify | 定义多行文字的排列方式,此属性可以是 LEFT/CENTER/RIGHT |
padx/pady | 定义控件内的文字或者图片与控件边框之间的水平/垂直距离 |
relief | 定义控件的边框样式,参数值为FLAT(平的)/RAISED(凸起的)/SUNKEN(凹陷的)/GROOVE(沟槽桩边缘)/RIDGE(脊状边缘) |
text | 定义控件的标题文字 |
state | 控制控件是否处于可用状态,参数值默认为 NORMAL/DISABLED,默认为 NORMAL(正常的) |
width | 用于设置控件的宽度,使用方法与 height 相同 |
2.3 Tkinter中的窗口对象
from Tkinter import Tk
# 创建窗口对象
win = Tk()
下表显示窗口常用方法-
名称 | 说明 |
win.title(“my title”) | 接受一个字符串参数,为窗口起一个标题 |
win.resizable() | 是否允许用户拉伸主窗口大小,默认为可更改,当设置为 resizable(0,0)或者resizable(False,False)时不可更改 |
win.geometry() | 设定主窗口的大小以及位置,当参数值为 None 时表示获取窗口的大小和位置信息。 |
win.quit() | 关闭当前窗口 |
win.update() | 刷新当前窗口 |
win.mainloop() | 设置窗口主循环,使窗口循环显示(一直显示,指导窗口被关闭) |
win.iconbitmap() | 设置窗口左上角的图标(图标是.ico文件类型) |
win.config(background =“red”) | 设置窗口的背景色为红色,也可以接受 16 进制的颜色值 |
win.minsize(50,50) | 设置窗口被允许调整的最小范围,即宽和高各50 |
win.maxsize(400,400) | 设置窗口被允许调整的最大范围,即宽和高各400 |
win.attributes(“-alpha”,0.5) | 用来设置窗口的一些属性,比如透明度(-alpha)、是否置顶(-topmost)即将主屏置于其他图标之上、是否全屏(-fullscreen)全屏显示等 |
win.state(“normal”) | 用来设置窗口的显示状态,参数值 normal(正常显示),icon(最小化),zoomed(最大化), |
win.withdraw() | 用来隐藏主窗口,但不会销毁窗口。 |
win.iconify() | 设置窗口最小化 |
win.deiconify() | 将窗口从隐藏状态还原 |
win.winfo_screenwidth() | 获取电脑屏幕的分辨率(尺寸) |
win.winfo_screenheight() | 0 |
win.winfo_width() | 获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update() 刷新屏幕,否则返回值为1 |
win.winfo_height() | 0 |
win.protocol(“协议名”,回调函数) | 启用协议处理机制,常用协议有 WN_DELETE_WINDOW,当用户点击关闭窗口时,窗口不会关闭,而是触发回调函数。 |
下面通过一个示例简单介绍方法的使用 -
from tkinter import Tk, Label, Button
win = Tk()
# 设置窗口标题
win.title("Python学习")
# 设置窗口大小:宽x高,注,此处不能为 "*",必须使用 "x"
win.geometry('480x270')
# 获取电脑屏幕的大小
print("电脑的分辨率是%dx%d" % (win.winfo_screenwidth(), win.winfo_screenheight()))
# 要求窗口的大小,必须先刷新一下屏幕
win.update()
print("窗口的分辨率是%dx%d" % (win.winfo_width(), win.winfo_height()))
# 如使用该函数则窗口不能被拉伸
# win.resizable(0,0)
# 改变背景颜色
win.config(background="#6fb765")
# 设置窗口处于顶层
win.attributes('-topmost', True)
# 设置窗口的透明度
win.attributes('-alpha', 1)
# 设置窗口被允许最大调整的范围,与resizble()冲突
win.maxsize(600, 600)
# 设置窗口被允许最小调整的范围,与resizble()冲突
win.minsize(50, 50)
# 更改左上角窗口的的icon图标,加载C语言中文网logo标
# win.iconbitmap('C:/Users/Administrator/Desktop/favicon.ico')
# 添加文本内容,并对字体添加相应的格式 font(字体,字号,"字体类型")
text = Label(win, text="Python学习,网址:study.python.net", bg="green", fg="red",
font=('Times', 15, 'bold italic underline'))
# 将文本内容放置在主窗口内
text.pack()
# 添加按钮,以及按钮的文本,并通过command 参数设置关闭窗口的功能
button = Button(win, text="关闭", command=win.quit)
# 将按钮放置在主窗口内
button.pack(side="bottom")
# 进入主循环,显示主窗口
win.mainloop()
上面代码的执行结果 -
电脑的分辨率是1366x768
窗口的分辨率是480x270