目录
????????Tkinter是Python的标准图形用户界面(GUI)库,它提供了创建窗口、对话框、按钮、文本框和其他GUI元素的工具。Tkinter易于使用,并允许开发者快速创建出功能强大的GUI应用程序。这个库提供了一种简单的方式来构建交互式界面,使数据可视化,并为用户提供直观的界面。通过Tkinter,开发者可以创建各种类型的窗口,包括对话框、主窗口和子窗口。此外,Tkinter还支持各种布局管理器,如pack、grid和place,以帮助开发者控制组件在窗口中的位置。总的来说,Tkinter是一个强大且易于使用的GUI库,适用于创建各种类型的Python应用程序。
????????由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
????????以下是一个使用tkinter库创建的简单应用程序,显示 “?Hello World ”?的界面:首先,我们需要导入tkinter库,然后创建一个主窗口,在主窗口中,我们将添加一个标签(Label)组件,用于显示文本 “?Hello World ”?。这个界面非常基础,但演示了如何使用tkinter创建一个简单的GUI应用程序。通过这个示例,你可以了解如何使用tkinter创建一个简单的GUI应用程序,并添加文本显示功能。这为进一步探索tkinter的其他功能和组件奠定了基础。
示例:
import tkinter as tk
# 创建主窗口
root = tk.Tk()
# 添加标签组件
label = tk.Label(root, text="Hello World")
label.pack()
# 运行应用程序
root.mainloop()
????????Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:
控件 | 描述 |
---|---|
Label | 标签控件;可以显示文本和位图 |
Button | 按钮控件;触发特定事件的按钮组件 |
Entry | 输入控件;单行文本输入框组件 |
Checkbutton | 多选框控件;允许用户选择多个选项 |
Radiobutton | 单选按钮控件;允许用户从多个选项中选择一个 |
Combobox | 下拉框控件;结合了输入框和列表框的功能 |
Listbox | 列表框控件;允许用户从多个选项中选择 |
Canvas | 画布控件;用于绘制图形和图像 |
Scale | 滑块控件;允许用户通过拖动滑块来选择值 |
Spinbox | 输入框组件,允许用户选择一个值 |
Menu | 菜单控件;包含多个菜单项和子菜单 |
Menubutton | 菜单按钮控件;用于显示菜单 |
Filedialog | 文件对话框组件,用于打开和保存文件 |
Dirdialog | 目录对话框组件,用于选择目录 |
Message | 消息控件;用来显示多行文本,与label比较类似 |
Text | 文本控件;用于显示多行文本 |
Notebook | 选项卡式窗口组件,允许在多个页面之间切换 |
Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 |
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. |
Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 |
Spinbox | 与Entry类似,但是可以指定输入范围值 |
PanedWindow | 一个窗口布局管理的插件,可以包含一个或者多个子控件。 |
LabelFrame | 一个简单的容器控件。常用于复杂的窗口布局。 |
tkMessageBox | 用于显示你应用程序的消息框。 |
Python Tkinter 标签控件(Label)指定的窗口中显示的文本和图像。
标签控件(Label)指定的窗口中显示的文本和图像。
如果需要显示一行或多行文本且不允许用户修改,你可以使用?Label?组件。
Label(parent, option=value, ...)
????????其中,parent为父窗口,而options则是Label的参数。第一个参数是父对象,表示这个标签将建立在哪一个父对象(可以想象成父窗口或称容器)内。
可选项 | 描述 |
---|---|
anchor | 文本或图像在背景内容区的位置,默认为 center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示:上北下南左西右东。 |
bg | 标签背景颜色 |
bd | 标签的大小,默认为 2 个像素 |
bitmap | 指定标签上的位图,如果指定了图片,则该选项忽略 |
cursor | 鼠标移动到标签时,光标的形状,可以设置为 arrow, circle, cross, plus 等。 |
font | 设置字体。 |
fg | 设置前景色。 |
height | 标签的高度,默认值是 0。 |
image | 设置标签图像。 |
justify | 定义对齐方式,可选值有:LEFT,RIGHT,CENTER,默认为 CENTER。 |
padx | x 轴间距,以像素计,默认 1。 |
pady | y 轴间距,以像素计,默认 1。 |
relief | 边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
text | 设置文本,可以包含换行符(\n)。 |
textvariable | 标签显示 Tkinter 变量,StringVar。如果变量被修改,标签文本将自动更新。 |
underline | 设置下划线,默认 -1,如果设置 1,则是从第二个字符开始画下划线。 |
width | 设置标签宽度,默认值是 0,自动计算,单位以像素计。 |
wraplength | 设置标签文本为多少行显示,默认为 0。 |
# 导入Tkinter库,这是一个用于创建图形用户界面的库
import tkinter as tk
# 创建一个Tk窗口对象,这是整个应用程序的根窗口
root = tk.Tk()
# 创建一个标签,显示“Hello, Tkinter!”
label1 = tk.Label(root, text="Hello, Tkinter!")
# 将标签添加到主窗口中
label1.pack()
# 进入主事件循环,等待用户的操作(如点击按钮)等事件发生,如果没有这一行,窗口会立即关闭
root.mainloop()
# 导入Tkinter库,这是一个用于创建图形用户界面的库
import tkinter as tk
# 创建一个Tk窗口对象,这是整个应用程序的根窗口
root = tk.Tk()
# 定义一个函数,当按钮被点击时会被调用
def on_button_click():
# 在控制台打印“Button clicked!”
print("Button clicked!")
# 获取String_Buff变量的值,并将其转换为整数
num = int(String_Buff.get()) + 1
# 将num转换为字符串,并设置到String_Buff变量中
String_Buff.set(str(num))
# 创建一个StringVar对象,名为String_Buff,并设置其初始值为“0”
String_Buff = tk.StringVar()
String_Buff.set("0")
# 创建一个标签,显示的内容为String_Buff的值,当String_Buff的值改变时,标签的内容也会随之改变
label2 = tk.Label(root, textvariable=String_Buff)
# 将标签添加到主窗口中
label2.pack()
# 创建一个按钮,文本为“Click Me!”,当按钮被点击时,调用on_button_click函数
button = tk.Button(root, text="Click Me!", command=on_button_click)
# 将按钮添加到主窗口中
button.pack()
# 进入主事件循环,等待用户的操作(如点击按钮)等事件发生,如果没有这一行,窗口会立即关闭
root.mainloop()
????????Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。
Button(master, option=value, ...)
????????其中,master
是父窗口,而option
则是Button控件的参数。?
可选项 | 描述 |
---|---|
activebackground | 当鼠标放上去时,按钮的背景色 |
activeforeground | 当鼠标放上去时,按钮的前景色 |
bd | 按钮边框的大小,默认为 2 个像素 |
bg | 按钮的背景色 |
command | 按钮关联的函数,当按钮被点击时,执行该函数 |
fg | 按钮的前景色(按钮文本的颜色) |
font | 文本字体 |
height | 按钮的高度 |
highlightcolor | 要高亮的颜色 |
image | 按钮上要显示的图片 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
padx | 按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离 |
pady | 按钮在y轴方向上的内边距(padding) |
relief | 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
state | 设置按钮组件状态,可选的有NORMAL、ACTIVE、 DISABLED。默认 NORMAL。 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推 |
width | 按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小) |
wraplength | 限制按钮每行显示的字符的数量 |
text | 按钮的文本内容 |
anchor | 锚选项,控制文本的位置,默认为中心 |
import tkinter as tk
def on_button_click():
print("Button clicked!")
# 创建主窗口实例
root = tk.Tk()
# 创建一个Button控件,并设置其文本为"Click Me!"
button = tk.Button(root, text="Click Me!", command=on_button_click)
# 将Button控件添加到主窗口中
button.pack() # 使用pack几何管理器,将按钮放置在主窗口中
# 进入消息循环,等待用户交互
root.mainloop()
import tkinter as tk
# 创建主窗口实例
root = tk.Tk()
# 创建一个Button控件,并设置其文本为"Click Me!"
button = tk.Button(root, text="Click Me!")
# 定义按钮点击时执行的函数
def on_button_click():
print("Button clicked!")
# 将按钮的点击事件与函数关联起来
button.bind("<Button-1>", on_button_click)
# 将Button控件添加到主窗口中
button.pack() # 使用pack几何管理器,将按钮放置在主窗口中
# 进入消息循环,等待用户交互
root.mainloop()
????????Entry 组件用于在 Tkinter 应用程序中接收用户输入的单行文本。Entry 组件提供了输入文本的输入字段,可以设置最大长度、输入限制等。
Entry(master, option=value, ...)
????????其中,master 是父窗口,而 option 则是 Entry 控件的参数。
可选项 | 描述 |
---|---|
bg | 输入框背景颜色 |
bd | 边框的大小,默认为 2 个像素 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
font | 文本字体 |
exportselection | 默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。 |
fg | 文字颜色。值为颜色或为颜色代码,如:'red','#ff0000' |
highlightcolor | 文本框高亮边框颜色,当文本框获取焦点时显示 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
relief | 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
selectbackground | 选中文字的背景颜色 |
selectborderwidth | 选中文字的背景边框宽度 |
selectforeground | 选中文字的颜色 |
show | 指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*" |
state | 默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled |
textvariable | 文本框的值,是一个StringVar()对象 |
width | 文本框宽度 |
xscrollcommand | 设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。 |
import tkinter as tk
def on_entry_change():
print("Entry text:", entry.get())
# 创建主窗口实例
root = tk.Tk()
# 创建一个 Entry 控件
entry = tk.Entry(root)
# 将 Entry 控件添加到主窗口中
entry.pack() # 使用pack几何管理器,将Entry放置在主窗口中
# 创建一个 Button 控件,设置其文本为 "提交",并绑定点击事件到 on_entry_change 函数
button = tk.Button(root, text="提交", command=on_entry_change)
# 将 Button 控件添加到主窗口中
button.pack() # 使用pack几何管理器,将按钮放置在主窗口中
# 进入消息循环,等待用户交互
root.mainloop()
????????Checkbutton组件用于在Tkinter应用程序中创建一个多选框,用户可以通过点击来选中或取消选中。
Checkbutton(master, option=value, ...)
????????其中,master是父窗口,而option则是Checkbutton控件的参数。
可选项 | 描述 |
---|---|
activebackground | 当鼠标放上去时,按钮的背景色 |
activeforeground | 当鼠标放上去时,按钮的前景色 |
bg | 按钮的背景色 |
bitmap | 位图 |
bd | 边框的大小,默认为 2 个像素 |
command | 关联的函数,当按钮被点击时,执行该函数 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
disabledforeground | 禁用选项的前景色 |
font | 文本字体 |
fg | 选项的前景色 |
height | 复选框文本行数,默认为 1。 |
highlightcolor | 聚焦的高亮颜色 |
image | 是否使用图标 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
offvalue | Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
onvalue | Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
padx | 按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离,默认为 1 像素。 |
pady | 按钮在y轴方向上的内边距(padding),默认为 1 像素。 |
relief | 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
selectcolor | 选中后的颜色,默认为 selectcolor="red"。 |
selectimage | 选中后的图片 |
state | 状态,默认为 state=NORMAL |
text | 显示的文本,使用 "\n" 来对文本进行换行。 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推 |
variable | 变量,variable 的值为 1 或 0,代表着选中或不选中 |
width | 默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。 |
wraplength | 是否设置包裹。 |
import tkinter
# 定义一个函数,当点击复选框时触发
def on_click():
# 检查CheckVar1的值,如果为0则表示未选中,打印"没选中1"
if(CheckVar1.get()==0):
print("没选中1")
# 如果CheckVar1的值为1,表示已选中,打印"选中1"
elif(CheckVar1.get()==1):
print("选中1")
# 检查CheckVar2的值,如果为0则表示未选中,打印"没选中2"
if(CheckVar2.get()==0):
print("没选中2")
# 如果CheckVar2的值为1,表示已选中,打印"选中2"
elif(CheckVar2.get()==1):
print("选中2")
# 更新标签w1的文本,显示选项1的状态
w1.config(text="选项1的值:"+str(CheckVar1.get()))
# 更新标签w2的文本,显示选项2的状态
w2.config(text="选项2的值:"+str(CheckVar2.get()))
# 创建主窗口实例
root = tkinter.Tk()
# 创建两个变量,用于存储复选框的状态
CheckVar1 = tkinter.IntVar()
CheckVar2 = tkinter.IntVar()
# 创建第一个复选框,关联到on_click函数和CheckVar1变量
C1 = tkinter.Checkbutton(root, text = "选项1", command=on_click, variable = CheckVar1,onvalue = 1, offvalue = 0)
# 创建第二个复选框,关联到on_click函数和CheckVar2变量
C2 = tkinter.Checkbutton(root, text = "选项2", command=on_click, variable = CheckVar2,onvalue = 1, offvalue = 0)
# 创建标签w1和w2,初始文本为空字符串
w1 = tkinter.Label(root, text=" ")
w1.pack()
w2 = tkinter.Label(root, text=" ")
w2.pack()
# 将复选框和标签添加到主窗口中
C1.pack()
C2.pack()
# 启动主事件循环,开始监听用户交互事件
root.mainloop()
????????Radiobutton组件用于在Tkinter应用程序中创建一个单选按钮,用户只能选择一个选项。
Radiobutton(master, option=value, ...)
????????其中,master是父窗口,而option则是Radiobutton控件的参数。
可选项 | 描述 |
---|---|
activebackground | 当鼠标放上去时,按钮的背景色。 |
activeforeground | 当鼠标放上去时,按钮的前景色。 |
bg | 按钮的背景色。 |
bitmap | 是否使用位图。 |
bd | 边框的大小,默认为2像素。 |
command | 关联的函数,当按钮被点击时,执行该函数。 |
cursor | 光标的形状设定,如arrow, circle, cross, plus等。 |
disabledforeground | 禁用选项的前景色。 |
font | 文本字体。 |
fg | 选项的前景色。 |
height | 单选框文本行数,默认为1。 |
highlightcolor | 当按钮被聚焦时的颜色。 |
image | 是否使用图标。 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER。 |
offvalue | 当未选中时的值。可以是其他类型的数值。 |
onvalue | 当选中时的值。可以是其他类型的数值。 |
padx | 按钮在x轴方向上的内边距(padding),默认为1像素。 |
pady | 按钮在y轴方向上的内边距(padding),默认为1像素。 |
relief | 边框的样式,可选FLAT、SUNKEN、RAISED、GROOVE、RIDGE。影响视觉效果和交互体验,不影响功能或行为。根据设计需求和用户界面风格进行选择。边框样式可能在不同操作系统和GUI库中表现略有不同,建议进行测试以确保一致性和可用性。 |
selectcolor | 选中后的颜色,默认为红色。 |
selectimage | 选中后的图片。 |
state | 状态,默认为NORMAL。还可以设置其他状态如ACTIVE、SELECTED等。 |
text | 显示的文本,使用"\n"来对文本进行换行。还可以通过cget方法获取当前显示的文本内容。通过configure方法设置新的文本内容。 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为0时,第一个字符带下划线,为1时,前两个字符带下划线,以此类推。还可以通过cget方法获取当前是否带下划线,通过configure方法设置新的下划线状态。 |
variable | 变量,variable的值为1或0,代表着选中或不选中。还可以通过cget方法获取当前变量值,通过configure方法设置新的变量值。当变量值改变时,会触发一个回调函数来更新界面显示或其他相关操作。这个变量通常与组件的状态相关联,用于控制组件的行为和显示效果。在Tkinter中,这个变量通常是组件的实例变量,可以通过组件的实例来访问和修改它。例如,对于一个单选按钮组件,可以通过单选按钮的实例来获取或设置它的变量值,从而控制哪个选项被选中或取消选中。这个变量也可以是其他类型的值,具体取决于组件的实现和使用方式。通过设置变量值,可以动态地控制组件的行为和界面显示,从而实现更加灵活和动态的用户界面效果。在Tkinter中,很多组件都使用变量来控制它们的行为和显示效果,例如复选框、单选按钮、滑块等组件都可以通过变量来控制它们的状态和值。因此,在使用Tkinter时,理解如何使用和管理这些变量是非常重要的,这有助于你更好地控制组件的行为和实现更丰富的用户界面效果。 |
# 导入tkinter库,并为其设置别名tk
import tkinter as tk
# 定义一个函数,用于处理单选按钮的点击事件
def on_radiobutton_click(value):
# 当函数被调用时,打印出被选中的单选按钮的值
print(f"单选框 {value} 被选中")
# 创建主窗口的实例
root = tk.Tk()
# 创建第一个单选按钮,文本为“选项1”,值为1,点击时调用on_radiobutton_click函数并传递参数1
radiobutton1 = tk.Radiobutton(root, text="选项1", value=1, command=lambda:on_radiobutton_click(1))
# 使用pack几何管理器将单选按钮放置在主窗口中,并设置锚点为西(W)
radiobutton1.pack(anchor=tk.W)
# 创建第二个单选按钮,文本为“选项2”,值为2,点击时调用on_radiobutton_click函数并传递参数2
radiobutton2 = tk.Radiobutton(root, text="选项2", value=2, command=lambda:on_radiobutton_click(2))
# 使用pack几何管理器将单选按钮放置在主窗口中,并设置锚点为西(W)
radiobutton2.pack(anchor=tk.W)
# 启动主事件循环,等待用户交互
root.mainloop()
????????Combobox组件用于在Python应用程序中添加下拉列表框,用户可以从下拉列表中选择一个选项。Combobox可以与一个Python函数关联,当选项被选择时,自动调用该函数。
Combobox(master, option=value, ...)
????????其中,master是父窗口,而option则是Combobox控件的参数。
可选项 | 描述 |
---|---|
activebackground | 当鼠标放上去时,下拉列表框的背景色。 |
activeforeground | 当鼠标放上去时,下拉列表框的前景色。 |
bg | 下拉列表框的背景色。 |
exportselection | 是否允许从下拉列表框中获取选择的值。默认为True。 |
height | 下拉列表框的高度,默认为2行。 |
listvariable | 与下拉列表框关联的变量,用于存储下拉列表的值。这个变量必须是StringVar类型。 |
postcommand | 用于重新加载下拉列表框的函数。当选项变化时,会自动调用该函数来更新下拉列表框的内容。 |
selectmode | 选择模式,可选的值有SINGLE、BROWSE、BROWSE_EXT、MULTIPLE和EXTENDED。默认为SINGLE。 |
textvariable | 与下拉列表框关联的变量,用于存储下拉列表的文本值。这个变量必须是StringVar类型。 |
values | 下拉列表框的初始值列表。可以是字符串或数值。默认为空列表。 |
import tkinter as tk
from tkinter import ttk
# 创建主窗口
root = tk.Tk()
root.title("Combobox 示例")
# 创建垂直布局管理器
main_frame = ttk.Frame(root)
main_frame.pack(fill=tk.BOTH, expand=True)
# 创建 Combobox 组件
combo_box = ttk.Combobox(main_frame)
combo_box.pack(pady="10") # 在 Combobox 下添加一些垂直填充,使其看起来更整齐
# 添加 Combobox 选项
combo_box['values'] = ('选项1', '选项2', '选项3') # 使用 'values' 属性添加选项
# Combobox 的选择事件绑定
def on_combobox_change(event):
selected_value = combo_box.get() # 获取当前选中的值
print("选中的值:", selected_value)
combo_box.bind("<<ComboboxSelected>>", on_combobox_change) # 当 Combobox 的值改变时触发 on_combobox_change 函数
# 启动主循环
root.mainloop()
????????Listbox 组件用于在 Python 应用程序中创建一个列表框,用户可以在其中选择一项或多项。Listbox 提供了多种方法来管理列表内容,如添加、删除和获取选项等。
Listbox(master, option=value, ...)
????????其中,master
?是父窗口(例如一个 Frame 或主窗口),option
?是 Listbox 控件的参数。
可选项 | 描述 |
---|---|
bg | 列表框的背景色。 |
bd | 列表框的边框宽度。 |
cursor | 鼠标悬停在列表框上时的光标形状。 |
exportselection | 是否允许将列表框中的选择导出到其他应用程序(如剪贴板)。默认为 True。 |
font | 列表中文本的字体。 |
fg | 列表中文本的前景色。 |
height | 列表框显示的行数。 |
highlightbackground | 当列表框没有焦点时的高亮边框颜色。 |
highlightcolor | 当列表框获得焦点时的高亮边框颜色。 |
listvariable | 与列表框关联的变量,用于存储列表的内容。这个变量通常是一个 StringVar 类型的变量,但实际上它必须是一个实现了特定接口的对象,因此直接使用 StringVar 可能会导致错误。通常,我们直接使用 Listbox 的方法(如?insert ?和?get )来管理列表内容,而不是使用?listvariable 。 |
relief | 边框的样式,如?FLAT 、RAISED 、SUNKEN 、GROOVE ?或?RIDGE 。 |
selectbackground | 选中项的背景色。 |
selectborderwidth | 选中项边框的宽度(仅在某些主题/平台上有效)。 |
selectforeground | 选中项的前景色。 |
selectmode | 选择模式,可以是?SINGLE (单选)、BROWSE (浏览,也是单选)、MULTIPLE (多选)或?EXTENDED (扩展选择,需要配合 Shift 和 Ctrl 键进行多选)。 |
setgrid | 是否显示网格线(仅在某些主题/平台上有效)。 |
takefocus | 是否可以通过键盘(如 Tab 键)将焦点移动到该组件。 |
width | 列表框的宽度(以字符为单位)。 |
xscrollcommand | 如果列表框的内容需要水平滚动,则与水平滚动条相关联的命令。 |
yscrollcommand | 如果列表框的内容需要垂直滚动,则与垂直滚动条相关联的命令。 |
import tkinter as tk
def on_selection(event):
# 获取被选中的选项的索引
index = event.widget.curselection()
if index:
# 根据索引获取被选中的选项的值
value = event.widget.get(index[0])
print(f"被选中的选项:{value}")
# 创建主窗口
root = tk.Tk()
# 创建 Listbox 组件
listbox = tk.Listbox(root, width=30, height=10)
# 添加选项到 Listbox
listbox.insert(1, "选项1")
listbox.insert(2, "选项2")
listbox.insert(3, "选项3")
listbox.insert(4, "选项4")
listbox.insert(5, "选项5")
# 将 Listbox 添加到主窗口中
listbox.pack()
# 绑定选择事件到回调函数
listbox.bind("<<ListboxSelect>>", on_selection)
# 运行主循环
root.mainloop()
????????Canvas 组件用于在 Python 应用程序中创建和绘制图形。Canvas 组件提供了一系列的绘图函数,如画线、画圆、画矩形等,允许用户在窗口中自由绘制图形。
Canvas(master, option=value, ...)
????????其中,master是父窗口,而option则是Canvas控件的参数。
可选项 | 描述 |
---|---|
bd | 边框宽度,单位像素,默认为 2 像素。 |
bg | 背景色 |
confine | 如果为 true (默认), 画布不能滚动到可滑动的区域外。 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
height | 高度 |
highlightcolor | 要高亮的颜色 |
relief | 边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。 默认为 FLAT。 |
scrollregion | 一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,w 为左边,n 为头部,e 为右边,s 为底部。 |
width | 画布在 X 坐标轴上的大小。 |
xscrollincrement | 用于滚动请求水平滚动的数量值。 |
xscrollcommand | 水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的 .set()方法。 |
yscrollincrement | 类似 xscrollincrement, 但是垂直方向。 |
yscrollcommand | 垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的 .set()方法。 |
import Tkinter
import tkMessageBox
# -*- coding: cp936 -*-
# 创建一个矩形,指定画布的颜色为白色
from Tkinter import *
root = Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建一个矩形,坐标为(10,10,110,110)
cv.create_rectangle(10,10,110,110)
cv.pack()
root.mainloop()
# 为明显起见,将背景色设置为白色,用以区别 root
top.mainloop()