目录
一、Tkinter 组件介绍
二、Label 标签控件
1、语法格式如下:
2、简单示例:
三、Button 按钮控件
1、语法格式如下:
2、简单示例:
四、Entry 输入控件
1、语法格式如下:
2、简单示例:
1、语法格式如下:
2、简单示例:
1、语法格式如下:
2、简单示例:
七、Combobox 下拉列表框控件
1、语法格式如下:
2、简单示例:
八、Listbox 列表框控件
1、语法格式如下:
2、简单示例:
九、Canvas 画布控件
1、语法格式如下:
2、简单示例:
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的参数。第一个参数是父对象,表示这个标签将建立在哪一个父对象(可以想象成父窗口或称容器)内。
选项 | 类型 | 默认值 | 功能描述 |
---|---|---|---|
activebackground | 颜色 | 系统主题的亮色 | 当标签被激活时显示的背景颜色 |
activeforeground | 颜色 | 系统主题的暗色 | 当标签被激活时显示的前景色 |
anchor | 枚举 | "w" | 文本的对齐方式。 |
background | 颜色 | "" (透明) | 标签的背景颜色 |
bitmap | 字符串 | "" (无) | 在标签上显示的位图 |
borderwidth | 整数 | 0 | 边框的宽度 |
cursor | 字符串 | "" (无) | 当鼠标悬停在标签上时显示的鼠标光标类型 |
disabledforeground | 颜色 | 系统主题的暗色或系统默认的颜色 | 当标签被禁用时显示的前景色 |
font | Font对象或字符串 | 系统默认字体 | 用于显示文本的字体样式和大小 |
foreground | 颜色 | 系统主题的暗色或系统默认的颜色 | 标签上文本的颜色 |
highlightbackground | 颜色 | 系统主题的暗色或系统默认的颜色 | 当标签没有被激活时,高亮边框的背景颜色。只有当highlightcolor被设置时才有效。 |
highlightcolor | 颜色 | 系统主题的亮色或系统默认的颜色 | 当标签被激活时,高亮边框的颜色。只有当highlightbackground被设置时才有效。 |
highlightthickness | 整数 | 0 (无) | 高亮边框的宽度。只有当highlightbackground和highlightcolor被设置时才有效。 |
image | Image对象或字符串 | None (无) | 在标签上显示的图像对象或文件路径或None。如果image被设置,文本和位图将被忽略。 |
justify | 枚举 | "left" (左对齐) | 文本的对齐方式。可选值有"left", "center", "right"。如果同时设置了image和text,则只有text会被影响。 |
padx, pady | 整数或二元组或二元组列表等 | 用于指定标签内部的填充。例如:padx="3", pady="3"。不同的填充类型有不同的用法和效果。 | 简单来说,它们用于在标签内部添加额外的空间,以调整布局和外观。 |
relief | 枚举或None或"uniform"或"nonuniform"等 | 用于指定边框的样式。可选值有"flat", "ridge", "sunken", "raised", "groove", "solid", "dotted", "dashed", "double", "invis"。 | 简单来说,它们用于改变标签边框的外观样式。 |
takefocus | 布尔值或None(默认) | 用于指定标签是否可以接收键盘焦点。如果设置为True,则用户可以使用Tab键在标签和其他控件之间导航。如果设置为False,则标签将不会接收键盘焦点,但仍然可以响应用户的鼠标点击事件。如果设置为None,则Tkinter将根据其他因素自动决定是否给标签分配键盘焦点。 | 简单来说,它们用于控制标签是否可以接收键盘焦点,以便在应用程序中使用键盘进行导航和交互。 |
text | 字符串或None或变量(如StringVar) | 用于设置标签上显示的文本内容。如果设置了textvariable选项,则text将被忽略。可以使用变量来动态更新文本内容。例如:textvariable=myvar。 | 简单来说,它们用于在标签上显示文本内容,可以通过变量来动态更新文本内容。 |
textvariable | StringVar对象或None(默认) | None (无)。用于动态更新标签 | |
underline | 布尔值 | False (无下划线) | 如果设置为True,则在标签的文本下绘制下划线。通常用于强调或标记可点击的链接。 |
wraplength | 整数或特殊值"none"等 | 用于指定文本换行的最大长度。如果设置为一个正整数,则文本将在达到该长度时自动换行。如果设置为"none",则文本不会自动换行。如果设置为"char",则文本将在每个字符之间自动换行。如果设置为"word",则文本将在每个单词之间自动换行。 | 简单来说,它们用于控制标签上文本的换行方式,以调整布局和外观。 |
height | 整数 | -1 (无限制) | 标签的行数。如果设置为一个正整数,则标签将只显示指定数量的行。如果设置为-1,则标签将显示所有行。 |
state | 枚举 | "normal" (正常状态) | 标签的状态。可选值有"normal" (正常状态)、"disabled" (禁用状态)和"hidden" (隐藏状态)。不同的状态会影响标签的外观和行为。 |
width | 整数 | -1 (无限制) | 标签的字符宽度。如果设置为一个正整数,则标签将只显示指定宽度的字符。如果设置为-1,则标签将显示所有字符。注意,这个选项只影响多行文本的显示方式,不会强制文本换行。如果要强制文本换行,可以使用wraplength选项。 |
# 导入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 | 颜色 | 系统主题的暗色 | 当按钮被激活时显示的前景色 |
anchor | 枚举 | "w" | 文本的对齐方式。可选值有"n", "s", "e", "w", "nw", "sw", "ne", "se"等 |
background | 颜色 | 系统主题的背景色 | 按钮的背景颜色 |
bitmap | 字符串或None | None (无) | 在按钮上显示的位图或文件路径。如果设置为None,则不显示位图。 |
borderwidth | 整数 | 0 | 边框的宽度 |
cursor | 字符串或None | None (无) | 当鼠标悬停在按钮上时显示的鼠标光标类型。如果设置为None,则使用系统默认的鼠标光标。 |
disabledforeground | 颜色或特殊值 | 系统主题的暗色或系统默认的颜色或系统主题的暗色或系统默认的颜色(当设置为"system"时) | 当按钮被禁用时显示的前景色。如果设置为"system",则使用系统主题的颜色。 |
font | Font对象或字符串或None | 系统默认字体或None (无) | 用于显示文本的字体样式和大小。如果设置为None,则使用系统默认字体。 |
foreground | 颜色或特殊值"system"或特殊值"buttonface"或特殊值"activeborder"等 | 系统主题的暗色或系统默认的颜色(当设置为 "system"时)或系统主题的暗色或系统默认的颜色(当foreground设置为"buttonface"时)或系统主题的亮色(当设置为 "activeborder"时)等。 |
用于设置按钮上文本的颜色。具体用法和效果请参考Tkinter文档。简单来说,它们用于改变按钮上文本的视觉效果,可以根据需要选择合适的颜色来增强按钮的外观和可读性。例如:foreground="red"。 |
highlightbackground | 颜色或特殊值"system"或特殊值"activeborder"等 | 系统主题的暗色或系统默认的颜色(当设置为"system"时)或系统主题的亮色(当设置为 "activeborder"时)等。 |
当按钮没有被激活时,高亮边框的背景颜色。具体用法和效果请参考Tkinter文档。简单来说,它们用于在按钮没有激活时,设置高亮边框的背景颜色,以增强按钮的可读性和视觉效果。例如:highlightbackground="blue"。 |
highlightcolor | 颜色或特殊值"system"或特殊值"buttonface"等 | 系统主题的亮色或系统默认的颜色(当highlightcolor设置为"system"时)或系统主题的暗色(当设置为"buttonface"时)等。 | 当按钮被激活时,高亮边框的颜色。具体用法和效果请参考Tkinter文档。简单来说,它们用于在按钮被激活时,设置高亮边框的颜色,以增强按钮的可读性和视觉效果。例如:highlightcolor="green"。 |
highlightthickness | 整数或特殊值0 或特殊值"-1"等 |
0 (无) 或 -1 (自动) 等。当按钮被激活时,高亮边框的宽度。如果设置为0,则没有高亮边框;如果设置为-1,则根据按钮的大小自动计算高亮边框的宽度。 | 简单来说,它们用于在按钮被激活时,设置高亮边框的宽度,以增强按钮的可读性和视觉效果。例如:highlightthickness="3"。 |
image | 图片对象或None | None (无) | 在按钮上显示的图片对象或文件路径。如果设置了image,text将被忽略。 |
justify | 字符串 | "center" | 文本的对齐方式。可选值有"left"、"center"或"right"。 |
padx | 整数或特殊值"uniform" | 0 (无) | 按钮内边距的水平尺寸。如果设置为"uniform",则将使用垂直内边距的相同值。 |
pady | 整数或特殊值"uniform" | 0 (无) | 按钮内边距的垂直尺寸。如果设置为"uniform",则将使用水平内边距的相同值。 |
relief | 字符串 | "flat" | 按钮边框的样式。可选值有"flat"、"ridge"、"sunken"、"raised"或"groove"。 |
repeatdelay | 整数或特殊值"None" | 300 (300毫秒) | 鼠标按钮按下时延迟的毫秒数,直到重复点击开始。如果设置为"None",则不重复。 |
repeatinterval | 整数或特殊值"None" | 40 (40毫秒) | 在重复点击过程中,鼠标按钮释放之前重复点击的间隔时间(以毫秒为单位)。如果设置为"None",则不重复。 |
takefocus | 布尔值(True或False)或特殊值"yes"或"no" 或"neither" |
"yes" (True) | 控制按钮是否接受键盘焦点。可选值为True、False、"yes"、"no"或"neither"。默认情况下,Tkinter按钮会接收焦点。 |
text | 字符串或字符串列表 或特殊值"auto" 或None(无) |
None (无) | 在按钮上显示的文本。如果设置为"auto",则自动计算文本的显示方式。如果设置为None,则不显示文本。可以同时设置image和text,但image将覆盖text。 |
textvariable | StringVar对象或None(无) | None (无) | 与text选项关联的StringVar对象。如果textvariable被设置,text将被忽略。用于动态更新按钮上的文本。 |
underline | 整数或特殊值-1 或特殊值"none" 或特殊值"underline"等 |
-1 (无下划线) 或 "none" (无下划线) 或 "underline" (下划线) 等。 | 当text被显示时,用于标识文本中应该被强调的部分。简单来说,它们用于在显示文本时,标识出应该被强调的部分,以增强按钮的可读性和视觉效果。例如:underline="1"。 |
wraplength | 整数或特殊值None(无) | None (无) | 控制文本换行的最大长度(以像素为单位)。如果设置为None,则文本不会自动换行。可以用于创建多行按钮文本的效果。简单来说,它们用于控制文本换行的长度,可以根据需要选择合适的长度来增强按钮的外观和可读性。例如:wraplength="200"。 |
command | 回调函数或无 | 无 | 当按钮被点击时调用的函数。通常用于执行某些操作。 |
compound | 字符串或None | None (无) | 指定如何组合图片和文本。可选值有"top"、"bottom"、"left"、"right"、"center"和"none"。如果设置为None,则只显示图片或文本,取决于image和text哪个被设置。 |
default | 字符串 | "normal" | 按钮的默认状态。可选值有"normal"、"active"和"disabled"。这决定了当用户点击按钮时应该执行的操作。 |
eight | 整数或特殊值"pack"或特殊值"none"或特殊值"variable"等 | "pack" (自动计算高度) 或 "none" (不限制高度) 或 "variable" (使用组件本身的高度) 等。 |
用于设置按钮的高度。简单来说,它们用于控制按钮的高度,可以根据需要选择合适的高度来增强按钮的外观和可读性。例如:height="20"。 |
overrelief | 字符串 | "flat" | 当鼠标指针悬停在按钮上时,按钮边框的样式。可选值有"flat"、"ridge"、"sunken"、"raised"和"groove"。 |
state | 字符串 | "normal" | 按钮的状态。可选值有"normal"、"active"和"disabled"。这决定了按钮的外观和行为。 |
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("", on_button_click)
# 将Button控件添加到主窗口中
button.pack() # 使用pack几何管理器,将按钮放置在主窗口中
# 进入消息循环,等待用户交互
root.mainloop()
Entry 组件用于在 Tkinter 应用程序中接收用户输入的单行文本。Entry 组件提供了输入文本的输入字段,可以设置最大长度、输入限制等。
Entry(master, option=value, ...)
其中,master 是父窗口,而 option 则是 Entry 控件的参数。
选项 | 类型 | 默认值 | 功能描述 |
---|---|---|---|
background | 颜色或图片或特殊值"system" | "white" | Entry组件的背景颜色或图片。如果设置为"system",则使用系统默认的颜色。 |
bd | 整数或特殊值"NONE" | 0 (无边框) | Entry组件边框的宽度。如果设置为"NONE",则没有边框。 |
bg | 颜色或图片或特殊值"system" | "white" | Entry组件的背景颜色或图片。与background选项功能相同。 |
borderwidth | 整数或特殊值"NONE" | "0" (无边框) | Entry组件边框的宽度。与bd选项功能相同。 |
cursor | 字符串或特殊值"default" | "xterm" | 当鼠标指针在Entry组件上时显示的鼠标光标样式。如果设置为"default",则使用系统默认的光标样式。 |
exportselection | 布尔值(True或False) 或特殊值"yes"或"no" 或"none"等 |
"yes" (True) | 控制是否允许用户通过鼠标或键盘选择Entry组件中的文本。如果设置为True,则允许选择;如果设置为False,则不允许选择。具体用法和效果请参考Tkinter文档。简单来说,它们用于控制Entry组件中文本的选中状态,可以根据需要选择是否允许用户选择文本。例如:exportselection="no"。不同的选中状态有不同的视觉效果和交互方式,可以根据需要选择合适的选中状态来增强Entry组件的外观和可读性。 |
fg | 颜色或特殊值"system" | "black" | Entry组件前景色(即文字颜色)。如果设置为"system",则使用系统默认的颜色。 |
font | Font对象或None(无) | None (无) | 用于显示文本的字体对象。如果未设置,将使用默认字体。可以用于自定义文本的字体样式、大小等。例如:font=tkinter.font.Font(size=12)。不同的字体有不同的视觉效果,可以根据需要选择合适的字体来增强Entry组件的外观和可读性。 |
foreground | 颜色或特殊值"system" | "black" | Entry组件前景色(即文字颜色)。与fg选项功能相同。如果设置为"system",则使用系统默认的颜色。 |
highlightbackground | 颜色或特殊值"none"或特殊值"system"等 | "white" (白色) 或 "none" (无高亮背景) 或 "system" (系统默认高亮背景) 等。当Entry组件获得焦点时,用于显示高亮边框的颜色。 | 简单来说,它们用于控制Entry组件获得焦点时的高亮边框颜色,可以根据需要选择合适的高亮颜色来增强Entry组件的外观和可读性。例如:highlightbackground="blue"。 |
highlightcolor | 颜色或特殊值"none"或特殊值"system"等 | "black" (黑色) 或 "none" (无高亮颜色) 或 "system" (系统默认高亮颜色) 等。当Entry组件获得焦点时,用于显示高亮边框的颜色。与highlightbackground选项功能相似,但指定的是高亮边框内部的填充色而不是边框本身的颜色。 | 简单来说,它们用于控制Entry组件获得焦点时的高亮边框内部填充色,可以根据需要选择合适的高亮颜色来增强Entry组件的外观和可读性。例如:highlightcolor="red"。 |
highlightthickness | 整数 | "0" (无高亮边框厚度) | 当Entry组件获得焦点时,用于控制高亮边框的厚度。 |
insertbackground | 颜色 | "black" (黑色) | 插入光标的位置的背景颜色。 |
insertborderwidth | 整数 | "0" (无插入边框宽度) | 插入光标的位置的边框宽度。 |
insertofftime | 整数或特殊值"none" 或特殊值"300"等 |
"300" (300毫秒) 或 "none" (无延迟) 等。控制插入光标在Entry组件上显示之前的时间延迟(以毫秒为单位)。如果设置为"none",则没有延迟,立即显示插入光标。 | 简单来说,它们用于控制插入光标在Entry组件上显示的延迟时间,可以根据需要选择合适的时间来增强Entry组件的交互体验。例如:insertofftime="500"。 |
insertontime | 整数或特殊值"none" 或特殊值"300"等 |
"300" (300毫秒) 或 "none" (无延迟) 等。控制插入光标在Entry组件上显示之后的时间延迟(以毫秒为单位)。如果设置为"none",则没有延迟,持续显示插入光标。 | 简单来说,它们用于控制插入光标在Entry组件上显示的延迟时间,可以根据需要选择合适的时间来增强Entry组件的交互体验。例如:insertontime="500"。 |
insertwidth | 整数 | "1" (一个字符宽度) | 插入光标的宽度。 |
invalidcommand | 回调函数或无 | 无 | 当输入无效时调用的函数。通常用于执行某些操作。 |
invcmd | 无或字符串或特殊值"validate"等 | 无或字符串或特殊值等。用于指定当输入无效时执行的操作。如果设置为特殊值"validate",则触发validate选项的验证函数。 | 简单来说,它们用于指定当Entry组件的输入无效时应该执行的操作,可以根据需要选择合适的行为来增强Entry组件的交互体验。例如:invcmd="validate"。 |
justify | 字符串 | "left" (左对齐) | 控制文本的对齐方式。可选值有"left"、"right"、"center" |
relief | 字符串或特殊值 | "flat" (平) 或 "raised" (凸起) 或 "sunken" (凹陷) 或 "ridge" (棱起) 或 "groove" (凹槽) 或 "solid" (实线) 或 "double" (双线) 或 "none" (无边框) 等。用于设置Entry组件边框的样式。 | 简单来说,它们用于控制Entry组件边框的样式,可以根据需要选择合适的样式来增强Entry组件的外观和可读性。例如:relief="sunken"。 |
selectbackground | 颜色 | "white"(白色) | 当文本被选中时显示的背景颜色。可以根据需要选择合适的背景色来增强Entry组件的外观和可读性。 |
selectborderwidth | 整数 | "0"(无边框宽度) | 当文本被选中时显示的边框宽度。可以根据需要选择合适的边框宽度来增强Entry组件的外观和可读性。 |
selectforeground | 颜色 | "black"(黑色) | 当文本被选中时显示的前景色。可以根据需要选择合适的前景色来增强Entry组件的外观和可读性。 |
show | 字符串或特殊值 "none" 或特殊值"''"等 |
"''" (空字符串) 或 "·" (点) 等。控制Entry组件中文本的显示方式。如果设置为特殊值"none",则不显示文本。 | 简单来说,它们用于控制Entry组件中文本的显示方式,可以根据需要选择合适的方式以增强Entry组件的外观和可读性。例如:show="·"。 |
state | 字符串或特殊值"normal"、 "disabled"、 "readonly"、"hidden"等 |
"normal" (正常状态) 或 "disabled" (禁用状态) 或 "readonly" (只读状态) 或 "hidden" (隐藏状态) 等。用于设置Entry组件的状态。不同的状态有不同的视觉效果和交互限制。 | 简单来说,它们用于控制Entry组件的状态,可以根据需要选择合适的状态来增强Entry组件的外观和可读性。例如:state="readonly"。 |
takefocus | 布尔值或特殊值"yes"、"no"、"0"、 "1"、"off"、"on"等 |
"yes" (是) 或 "no" (否) 或 "0" (0) 或 "1" (1) 或 "off" (关闭) 或 "on" (开启) 等。用于设置Entry组件是否接收键盘焦点。如果设置为True,则Entry组件可以接收键盘焦点;如果设置为False,则Entry组件不能接收键盘焦点。 | 简单来说,它们用于控制Entry组件是否接收键盘焦点,可以根据需要选择是否接收键盘焦点以增强Entry组件的交互体验。例如:takefocus="yes"。 |
textvariable | StringVar实例或特殊值"''" 或特殊值"None"等 |
"''" (空字符串) 或 None (无变量绑定) 等。用于将Entry组件与一个StringVar变量绑定,以便实现动态更新文本内容的功能。 | 简单来说,它们用于将Entry组件与一个StringVar变量绑定,以便实现动态更新文本内容的功能。例如:textvariable=myStringVar。通过绑定StringVar变量,可以动态更新Entry组件的文本内容,实现更加灵活的交互体验。 |
validate | 字符串或特殊值 "none"、"all"、 "focus"、 "focusin"、 "focusout"、 "key"、"special"、 "command"、 "invcmd"、 "vcmd"、 默认值为特殊值"none"。 |
无默认值或特殊值等。用于设置验证输入的规则。不同的规则有不同的验证逻辑和行为。 | 简单来说,它们用于设置验证输入的规则,可以根据需要选择合适的规则以增强Entry组件的交互体验和安全性。例如:validate="key"。 |
validatecommand | 无默认值或特殊值等 | 无默认值或特殊值等。用于设置验证输入的函数或条件表达式。当输入无效时,会触发该函数或表达式进行验证操作。 | 简单来说,它们用于设置验证输入的函数或条件表达式,可以根据需要选择合适的函数或表达式。 |
validatecommand | 回调函数 | 无 | 当输入内容需要验证时调用的函数。通常用于执行某些验证操作。 |
vcmd | 无或字符串或特殊值等 |
无或字符串或特殊值等。用于指定验证输入内容的回调函数。如果设置为特殊值"validatecommand",则触发validatecommand选项的回调函数进行验证操作。 | 简单来说,它们用于指定验证输入内容的回调函数,可以根据需要选择合适的行为来增强Entry组件的交互体验和安全性。例如:vcmd="validatecommand"。 |
width | 整数 | 20个字符的宽度(默认) | 设置Entry组件的宽度(以字符为单位)。可以根据内容长度和设计需求进行调整。 |
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 | 颜色 | 取决于系统主题的颜色 | 当按钮处于激活状态时使用的前景色。 |
anchor | 字符串 | "w"(左对齐) | 文本的对齐方式,可以选择"n"(上对齐)、"s"(下对齐)、"w"(左对齐)、"e"(右对齐)或"center"(居中对齐)。 |
background | 颜色 | "lightgrey"(浅灰色) | Checkbutton的背景颜色。 |
bd | 整数 | "2"(默认2像素) | Checkbutton的边框宽度。 |
bg | 颜色 | "lightgrey"(浅灰色) | Checkbutton的背景颜色。与background选项相同。 |
bitmap | 字符串或None | 无 | 在Checkbutton上显示位图图像。如果设置为None,则不显示位图。 |
borderwidth | 整数 | "2"(默认2像素) | Checkbutton边框的宽度。与bd选项相同。 |
command | 回调函数或无 | 无 | 当Checkbutton被点击时调用的函数。通常用于执行某些操作。 |
cursor | 字符串或None | "arrow"(箭头) | 当鼠标指针悬停在Checkbutton上时显示的鼠标光标类型。如果设置为None,则使用默认光标。 |
disabledforeground | 颜色或特殊值"system" 或特殊值 "disabled"等 |
"grey60"(60%灰色的颜色)或特殊值等。当Checkbutton处于禁用状态时使用的文本颜色。如果设置为特殊值"system",则使用系统默认的颜色;如果设置为特殊值"disabled",则使用Tkinter定义的禁用颜色。 | 简单来说,它们用于设置当Checkbutton处于禁用状态时使用的文本颜色,可以根据需要选择合适的颜色以增强可读性和视觉效果。例如:disabledforeground="grey60"。 |
fg | 颜色或特殊值"system"或特殊值"active"等 | "black"(黑色)或特殊值等。Checkbutton的前景色。如果设置为特殊值"system",则使用系统默认的颜色;如果设置为特殊值"active",则使用Tkinter定义的激活颜色。 | 简单来说,它们用于设置Checkbutton的前景色,可以根据需要选择合适的颜色以增强可读性和视觉效果。例如:fg="black"。 |
font | Font对象或字符串或无 | 无 | 设置Checkbutton中文字的字体样式和大小。如果未设置,则使用默认字体样式和大小。 |
foreground | 颜色或特殊值"system"或特殊值"active"等 | "black"(黑色)或特殊值等。Checkbutton的前景色。如果设置为特殊值"system",则使用系统默认的颜色;如果设置为特殊值"active",则使用Tkinter定义的激活颜色。 | 简单来说,它们用于设置Checkbutton的前景色,可以根据需要选择合适的颜色以增强可读性和视觉效果。例如:foreground="black"。 |
height | 整数或特殊值"-1" | "1"(默认高度为1行) | Checkbutton的高度,以行为单位。如果设置为特殊值"-1",则自动调整高度以适应内容。 |
highlightbackground | 颜色 | "SystemButtonFace" (系统按钮面的颜色) |
当Checkbutton被高亮显示时使用的背景颜色。 |
highlightcolor | 颜色 | "SystemHighlightColor" (系统高亮颜色) |
当Checkbutton被高亮显示时使用的前景色。 |
highlightthickness | 整数 | "0"(不绘制高亮边框) | 当Checkbutton被高亮显示时使用的边框宽度。 |
image | Image对象或无 | 无 | 在Checkbutton上显示的图像对象。如果未设置,则不显示图像。 |
indicatoron | 布尔值(True或False) | "True"(默认显示指示器) | 控制是否显示Checkbutton的指示器。当值为True时,显示指示器;当值为False时,不显示指示器。 |
justify | 字符串 | "left"(左对齐) | 文本的对齐方式,可以选择"left"(左对齐)、"center"(居中对齐)或"right"(右对齐)。 |
offvalue | 任何类型的数据 | 无 | 当Checkbutton处于非选中状态时返回的值。当Checkbutton被选中时,将返回onvalue的值。 |
onvalue | 任何类型的数据 | 无 | 当Checkbutton处于选中状态时返回的值。当Checkbutton被选中时,将返回onvalue的值。 |
padx | 整数或特殊值"胆汁"或特殊值"ns"等 | "0"(默认不添加额 外的水平填充) |
在Checkbutton的左右两侧添加填充空间。如果设置为特殊值"胆汁",则自动计算填充空间;如果设置为特殊值"ns",则只在水平方向上添加填充空间。具体用法和效果请参考Tkinter文档。简单来说,它们用于在Checkbutton的左右两侧添加填充空间,可以根据需要选择合适的填充方式以增强布局和视觉效果。例如:padx="10"。 |
pady | 整数或特殊值"胆汁"或特殊值"ns"等 | "0"(默认不添加额外 的垂直填充) |
在Checkbutton的上上下两侧添加填充空间。如果设置为特殊值"胆汁",则自动计算填充空间;如果设置为特殊值"ns",则只在垂直方向上添加填充空间。具体用法和效果请参考Tkinter文档。简单来说,它们用于在Checkbutton的上上下两侧添加填充空间,可以根据需要选择合适的填充方式以增强布局和视觉效果。例如:pady="10"。 |
relief | 字符串或特殊值等 | "flat"(默认平坦的边框) | Checkbutton边框的样式,可以选择"flat"、"ridge"、"sunken"、"raised"或特殊值等。具体用法和效果请参考Tkinter文档。简单来说,它们用于设置Checkbutton边框的样式,可以根据需要选择合适的样式以增强外观和视觉效果。例如:relief="raised"。 |
selectcolor | 颜色 | "grey25"(25%灰色的颜色) | 当Checkbutton被选中时使用的背景颜色。 |
selectimage | Image对象或无 | 无 | 当Checkbutton被选中时显示的图像对象。如果未设置,则不显示图像。 |
state | 字符串或特殊值"normal" 或"disabled" |
"normal"(默认正常状态) | 设置Checkbutton的状态,可以选择"normal"(正常状态)、"disabled"(禁用状态)或其他字符串值。 |
takefocus | 布尔值(True或False) | "True"(默认接受焦点) | 控制Checkbutton是否接受键盘焦点。当值为True时,接受焦点;当值为False时,不接受焦点。 |
text | 字符串或无 | 无 | Checkbutton上显示的文本内容。如果未设置,则不显示文本。 |
textvariable | StringVar对象或无 | 无 | 与Checkbutton关联的StringVar变量,用于存储和显示文本内容。如果未设置,则使用text选项的值。 |
underline | 整数或特殊值"none"(无下划线) 或特殊值 "valid"(仅当 underlinechar存在时有效)等 |
"none"(默认无下划线) | 在Checkbutton的文本中下划线的字符索引。如果设置为特殊值"none",则无下划线;如果设置为特殊值"valid",则仅当underlinechar存在时有效。具体用法和效果请参考Tkinter文档。简单来说,它们用于在Checkbutton的文本中添加下划线,可以根据需要选择合适的下划线位置以增强可读性和视觉效果。例如:underline="0"。 |
variable | StringVar对象或无 | 无 | 与Checkbutton关联的StringVar变量,用于存储和显示选中状态的值。如果未设置,则使用onvalue和offvalue选项的值。 |
width | 整数或特殊值"auto"(自动计算宽度) | "0"(默认宽度为0个字符) | Checkbutton的宽度,以字符为单位。如果设置为特殊值"auto",则自动计算宽度。 |
wraplength | 整数或特殊值"none" (无自动换行)或特殊值 "200c"(200字符宽度的自动换行)等 |
"none"(默认无自动换行) | 控制Checkbutton中多行文本的自动换行长度。如果设置为特殊值"none",则无自动换行;如果设置为特殊值"200c",则多行文本将在200字符宽度处自动换行。具体用法和效果请参考Tkinter文档。简单来说,它们用于控制Checkbutton中多行文本的自动换行长度,可以根据需要选择合适的自动换行长度以增强可读性和视觉效果。例如:wraplength="200"。 |
import tkinter as tk
def check_status():
print("var1:", var1.get())
print("var2:", var2.get())
root = tk.Tk()
var1 = tk.IntVar() # 创建一个Tkinter的IntVar对象作为变量
var2 = tk.IntVar() # 创建一个Tkinter的IntVar对象作为变量
check_button1 = tk.Checkbutton(root, text="Check me", variable=var1, onvalue=1, offvalue=2,command=check_status)
check_button1.pack()
check_button2 = tk.Checkbutton(root, text="Check me", variable=var2, onvalue=3, offvalue=4,command=check_status)
check_button2.pack()
root.mainloop()
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 | 颜色 | 组件的activeconfigure()方法的返回值(通常与默认背景色不同) | 当Radiobutton处于活动状态时使用的背景颜色。 |
activeforeground | 颜色 | 组件的activeconfigure()方法的返回值(通常与默认前景色不同) | 当Radiobutton处于活动状态时使用的前景色。 |
anchor | 字符串 | "w"(默认左对齐) | 文本的对齐方式,可以选择"n"(上对齐)、"s"(下对齐)、"w"(左对齐)、"e"(右对齐)或"center"(居中对齐)。 |
background | 颜色 | "SystemButtonFace"(系统按钮面的颜色) | 当Radiobutton处于非活动状态时使用的背景颜色。 |
bd | 整数 | "2"(默认边框宽度为2像素) | Radiobutton边框的宽度。 |
bg | 颜色 | "SystemButtonFace"(系统按钮面的颜色) | 当Radiobutton处于非活动状态时使用的背景颜色,与background选项功能相同。 |
bitmap | Bitmap对象或无 | 无 | 在Radiobutton上显示的位图对象。如果未设置,则不显示位图。 |
borderwidth | 整数或特殊值"0"或"1"等 | "2"(默认边框宽度为2像素) | Radiobutton边框的宽度。如果设置为特殊值"0",则无边框;如果设置为特殊值"1",则只有边框而没有内部填充。具体用法和效果请参考Tkinter文档。简单来说,它们用于设置Radiobutton边框的宽度,可以根据需要选择合适的边框宽度以增强外观和视觉效果。例如:borderwidth="0"。 |
command | 无参函数或无 | 无 | 当用户点击Radiobutton时调用的函数。如果未设置,则不执行任何操作。 |
cursor | 光标类型或无 | 无 | 当鼠标指针位于Radiobutton上时显示的光标类型。如果未设置,则使用默认光标。例如:cursor="hand2"。在不同的光标类型中,鼠标指针的外观和视觉效果会有所不同。 |
disabledforeground | 颜色 | 系统默认的颜色值(通常比正常颜色暗淡) | 当Radiobutton处于禁用状态时使用的前景色。 |
fg | 颜色 | "black"(默认前景色为黑色) | Radiobutton上文本的前景色。 |
font | Font对象或字符串或无 | 无 | 用于显示文本的字体对象或字体名称。如果未设置,则使用默认字体。 |
foreground | 颜色 | "black"(默认前景色为黑色) | 与fg选项功能相同,用于设置文本的前景色。 |
height | 整数或特殊值"min"或"max"或特殊值"variable"等 |
"0"(默认高度为0个字符) | Radiobutton的高度,以字符数为单位。如果设置为特殊值"min",则高度最小化;如果设置为特殊值"max",则高度最大化;如果设置为特殊值"variable",则高度根据内容动态调整。简单来说,它们用于设置Radiobutton的高度,可以根据需要选择合适的高度以增强外观和视觉效果。例如:height="2"。 |
highlightbackground | 颜色 | "SystemInvisibleFocusRGB"(系统不可见焦点颜色的RGB值) | 当Radiobutton失去焦点时高亮显示的背景颜色。 |
highlightcolor | 颜色 | "black"(默认高亮颜色为黑色) | 当Radiobutton获得焦点时高亮显示的边框颜色。 |
highlightthickness | 整数或特殊值"0"或"1"等 | "0"(默认无高亮边框) | 当Radiobutton获得焦点时高亮显示的边框宽度。如果设置为特殊值"0",则无高亮边框;如果设置为特殊值"1",则只有高亮边框而没有内部填充。简单来说,它们用于设置Radiobutton获得焦点时高亮显示的边框宽度。例如:highlightthickness="2"。 |
image | Image对象或无 | 无 | 在Radiobutton上显示的图像对象。如果未设置,则不显示图像。 |
indicatoron | 布尔值(True或False) | "True"(默认显示指示器) | 控制是否显示Radiobutton旁边的指示器。如果设置为True,则显示指示器;如果设置为False,则不显示指示器。 |
justify | 字符串 | "center"(默认文本居中对齐) | 文本在Radiobutton中的对齐方式,可以选择"left"(左对齐)、"right"(右对齐)或"center"(居中对齐)。 |
padx | 整数或特殊值"0"或"1"等 | "0"(默认无额外水平填充) | 在Radiobutton的水平方向上添加填充。如果设置为特殊值"0",则无水平填充;如果设置为特殊值"1",则只有水平填充而没有内部填充。简单来说,它们用于设置Radiobutton的水平填充,例如:padx="5"。 |
pady | 整数或特殊值"0"或"1"等 | "0"(默认无额外垂直填充) | 在Radiobutton的垂直方向上添加填充。如果设置为特殊值"0",则无垂直填充;如果设置为特殊值"1",则只有垂直填充而没有内部填充。简单来说,它们用于设置Radiobutton的垂直填充,例如:pady="5"。 |
relief | 字符串或特殊值"flat"(无边框)或特殊值"ridge"(凸起的边框)等 | "flat"(默认无边框) | Radiobutton边框的样式。可以选择不同的边框样式以增强外观和视觉效果。例如:relief="raised"。 |
selectcolor | 颜色 | "grey25"(25%灰色的颜色) | 当Radiobutton被选中时使用的背景颜色。 |
selectimage | Image对象或无 | 无 | 当Radiobutton被选中时显示的图像对象。如果未设置,则不显示图像。 |
state | 字符串或特殊值"normal" 或"disabled" |
"normal"(默认正常状态) | 设置Radiobutton的状态,可以选择"normal"(正常状态)、"disabled"(禁用状态)或其他字符串值。 |
takefocus | 布尔值(True或False) | "True"(默认接受焦点) | 控制Radiobutton是否接受键盘焦点。当值为True时,接受焦点;当值为False时,不接受焦点。 |
text | 字符串或无 | 无 | Radiobutton上显示的文本内容。如果未设置,则不显示文本。 |
textvariable | StringVar对象或无 | 无 | 与Radiobutton关联的StringVar变量,用于存储显示的文本内容。如果未设置,则使用固定的文本内容。 |
underline | 整数 | -1(默认无下划线) | 指定文本中要下划线的字符位置。如果设置为-1,则不显示下划线。 |
value | 字符串或整数或无 | 无 | 与Radiobutton关联的值。当Radiobutton被选中时,该值将被返回。 |
variable | StringVar对象或无 | 无 | 与Radiobutton关联的StringVar变量,用于存储选中的状态。如果未设置,则不存储选中状态。 |
width | 整数 | 根据文本长度自动调整宽度 | 设置Radiobutton的宽度,以字符数为单位。如果未设置,则根据文本长度自动调整宽度。 |
wraplength | 整数或特殊值"0"或"1"等 | "0"(默认不换行) 设置文本的换行长度。如果设置为特殊值"0",则不换行;如果设置为特殊值"1",则只有换行而没有内部填充。 |
简单来说,它们用于设置文本的换行长度,可以根据需要选择合适的换行长度以增强外观和视觉效果。例如:wraplength="20"。 |
# 导入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("<>", 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("<>", 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()