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

发布时间:2024年01月18日

目录

一、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的参数。第一个参数是父对象,表示这个标签将建立在哪一个父对象(可以想象成父窗口或称容器)内。

可选项描述
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。

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

当鼠标放上去时,按钮的前景色

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

锚选项,控制文本的位置,默认为中心

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("<Button-1>", on_button_click)  
  
# 将Button控件添加到主窗口中  
button.pack()  # 使用pack几何管理器,将按钮放置在主窗口中  
  
# 进入消息循环,等待用户交互  
root.mainloop()

四、Entry 组件

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

1、语法格式如下:

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

设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。

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

当鼠标放上去时,按钮的前景色

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

是否设置包裹。

2、简单示例:

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当鼠标放上去时,按钮的背景色。
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时,理解如何使用和管理这些变量是非常重要的,这有助于你更好地控制组件的行为和实现更丰富的用户界面效果。

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("<<ComboboxSelected>>", 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("<<ListboxSelect>>", 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()

文章来源:https://blog.csdn.net/qq_26043945/article/details/135665841
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。