Python通过Tkinter设计GUI(更新中)

目录

一、Tkinter 组件介绍

二、Label 标签控件

1、语法格式如下:

2、简单示例:

三、Button 按钮控件

1、语法格式如下:

2、简单示例:

四、Entry 输入控件

1、语法格式如下:

2、简单示例:

五、Checkbutton 多选框控件

1、语法格式如下:

2、简单示例:

六、Radiobutton 单选框控件

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 组件介绍

        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 用于显示你应用程序的消息框。

二、Label 标签控件

Python Tkinter 标签控件(Label)指定的窗口中显示的文本和图像。

  • 标签控件(Label)指定的窗口中显示的文本和图像。

  • 如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。

1、语法格式如下:

Label(parent, option=value, ...) 

        其中,parent为父窗口,而options则是Label的参数。第一个参数是父对象,表示这个标签将建立在哪一个父对象(可以想象成父窗口或称容器)内。

选项 类型 默认值 功能描述
activebackground 颜色 系统主题的亮色 当标签被激活时显示的背景颜色
activeforeground 颜色 系统主题的暗色 当标签被激活时显示的前景色
anchor 枚举 "w"

文本的对齐方式。

Python通过Tkinter设计GUI(更新中)_第1张图片

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选项。

2、简单示例:

# 导入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()

三、Button 按钮控件

        Tkinter 按钮控件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。

1、语法格式如下:

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"。这决定了按钮的外观和行为。

2、简单示例:

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 输入控件

        Entry 组件用于在 Tkinter 应用程序中接收用户输入的单行文本。Entry 组件提供了输入文本的输入字段,可以设置最大长度、输入限制等。

1、语法格式如下:

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组件的宽度(以字符为单位)。可以根据内容长度和设计需求进行调整。

2、简单示例:

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 多选框控件

        Checkbutton组件用于在Tkinter应用程序中创建一个多选框,用户可以通过点击来选中或取消选中。

1、语法格式如下:

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"。

2、简单示例:

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 单选框控件

        Radiobutton组件用于在Tkinter应用程序中创建一个单选按钮,用户只能选择一个选项。

1、语法格式如下:

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"。

2、简单示例:

# 导入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 下拉列表框控件

        Combobox组件用于在Python应用程序中添加下拉列表框,用户可以从下拉列表中选择一个选项。Combobox可以与一个Python函数关联,当选项被选择时,自动调用该函数。

1、语法格式如下:

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 下拉列表框的初始值列表。可以是字符串或数值。默认为空列表。

2、简单示例:

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 列表框控件

        Listbox 组件用于在 Python 应用程序中创建一个列表框,用户可以在其中选择一项或多项。Listbox 提供了多种方法来管理列表内容,如添加、删除和获取选项等。

1、语法格式如下:

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 边框的样式,如 FLATRAISEDSUNKENGROOVE 或 RIDGE
selectbackground 选中项的背景色。
selectborderwidth 选中项边框的宽度(仅在某些主题/平台上有效)。
selectforeground 选中项的前景色。
selectmode 选择模式,可以是 SINGLE(单选)、BROWSE(浏览,也是单选)、MULTIPLE(多选)或 EXTENDED(扩展选择,需要配合 Shift 和 Ctrl 键进行多选)。
setgrid 是否显示网格线(仅在某些主题/平台上有效)。
takefocus 是否可以通过键盘(如 Tab 键)将焦点移动到该组件。
width 列表框的宽度(以字符为单位)。
xscrollcommand 如果列表框的内容需要水平滚动,则与水平滚动条相关联的命令。
yscrollcommand 如果列表框的内容需要垂直滚动,则与垂直滚动条相关联的命令。

2、简单示例:

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 画布控件

        Canvas 组件用于在 Python 应用程序中创建和绘制图形。Canvas 组件提供了一系列的绘图函数,如画线、画圆、画矩形等,允许用户在窗口中自由绘制图形。

1、语法格式如下:

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()方法。

2、简单示例:

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()

你可能感兴趣的:(Python,python,嵌入式,GUI)