开发 GUI 应用的七个 Tkinter 组件详解

开发
这篇文章讲述了七个常用的Tkinter组件,同时展示了如何用这些组件构建实际应用的一个示例,即一个简单的BMI计算器应用程序。

开发GUI应用时,Tkinter是个非常好用的库。今天我们就详细聊聊在开发GUI应用时常用的七个Tkinter组件。

首先得导入Tkinter库,这是使用Tkinter的第一步。

import tkinter as tk
  • 1.

第一个是Label组件。它主要用于显示文本或图片。我们来看看它的简单例子。

# 创建一个窗口
window = tk.Tk()

# 创建一个Label并设置文本
label = tk.Label(window, text="你好,这是一个Label")
label.pack()  # 添加到窗口

# 开始主循环
window.mainloop()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

这里的window = tk.Tk()用来创建了一个窗口。然后创建了Label对象,设置了显示的文本。通过pack()方法将它添加到窗口上,最后调用mainloop()来启动程序的主循环。

接着我们看第二个组件Button。这个按钮允许用户触发特定的函数。

def button_click():
    print("按钮被点击了!")

button = tk.Button(window, text="点击我", command=button_click)
button.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这里定义了一个button_click函数,在按钮被点击时会被调用。注意command参数指定了按钮触发的回调函数。

第三个组件就是Entry了。这能让我们接收用户的文本输入。

entry = tk.Entry(window)
entry.pack()

def print_input():
    print(entry.get())  # get() 方法可以获取用户输入的内容

tk.Button(window, text="打印输入", command=print_input).pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

这个代码块先建立了一个文本输入框,当点击"打印输入"按钮时,打印用户在输入框中输入的内容。

第四个要说的是Checkbutton组件,表示一个勾选项,可以让用户选中或者取消选中某个选项。

var1 = tk.IntVar()  # 定义一个变量,用于存储选中状态
check_button = tk.Checkbutton(window, text="记住密码", variable=var1)
check_button.pack()
  • 1.
  • 2.
  • 3.

通过IntVar()对象来保存该选项的当前状态(选中为1,未选中为0)。

第五个组件是Radiobutton。它和Checkbutton相似,但每次只能选一个选项。

var2 = tk.StringVar()  # 这里使用StringVar,因为我们用文本作为选项

radio1 = tk.Radiobutton(window, text="男", variable=var2, value="男")
radio2 = tk.Radiobutton(window, text="女", variable=var2, value="女")

radio1.pack()
radio2.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

这个代码建立了两个单选按钮,选择不同的按钮会使var2的值改变为对应选项的文本。

第六个我们来看一下Listbox组件,它可以容纳一组项供用户选择。

listbox = tk.Listbox(window)
for item in ["Python", "Java", "C++", "JavaScript"]:
    listbox.insert(tk.END, item)

listbox.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这段代码往Listbox中插入了几种编程语言。用户可以从列表中选取自己感兴趣的项。

最后一个组件叫Canvas。它可以让我们在应用内画画。

canvas = tk.Canvas(window, width=200, height=100)
canvas.pack()

# 绘制一条线
canvas.create_line(0, 0, 200, 100)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这里初始化了一个200宽、100高的画布,并画了一条从左上角至右下角的直线。

实际场景实战案例:假设我们做一个小应用——一个可以计算BMI值的计算器。

# 创建窗口及基本标签等控件省略...

def calculate_bmi():
    weight = float(entry_weight.get())
    height = float(entry_height.get()) / 100  # 将cm转换成m
    bmi = weight / (height * height)
    label_result.config(text=f"BMI: {bmi:.2f}")  # 更新结果显示

label_weight = tk.Label(window, text="体重(kg)")
label_weight.pack()
entry_weight = tk.Entry(window)
entry_weight.pack()

label_height = tk.Label(window, text="身高(cm)")
label_height.pack()
entry_height = tk.Entry(window)
entry_height.pack()

button_calculate = tk.Button(window, text="计算BMI", command=calculate_bmi)
button_calculate.pack()

label_result = tk.Label(window, text="结果会显示在此")
label_result.pack()

window.mainloop()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

总结这篇文章讲述了七个常用的Tkinter组件,分别是Label、Button、Entry、Checkbutton、Radiobutton、Listbox、Canvas。同时展示了如何用这些组件构建实际应用的一个示例,即一个简单的BMI计算器应用程序。每个组件都提供了基础概念以及具体使用实例的讲解与实践。

责任编辑:赵宁宁 来源: 手把手PythonAI编程
相关推荐

2017-11-22 12:40:02

PythonGUI框架

2021-09-01 08:00:00

PostgreSQL数据库软件

2023-12-19 16:50:37

2023-07-11 18:32:19

UbuntuLinux应用坞

2022-05-06 08:47:10

Vue 3组件前端

2023-04-19 15:29:53

通信技巧Vue 3开发

2023-04-25 12:45:09

2024-11-06 16:45:39

Python游戏开发代码

2021-04-27 22:32:18

Python

2021-10-14 09:38:34

人工智能AI深度学习

2021-12-27 08:58:28

低代码开发数据安全

2021-10-18 13:29:52

Golang网站开发代码

2022-05-19 15:51:35

开源笔记

2023-11-01 14:51:21

边缘计算云计算

2017-12-22 05:18:06

2022-04-20 12:06:10

漏洞Java应用程序黑客

2023-07-27 14:44:03

物联网IOT

2021-12-07 22:07:26

数据治理元管理

2015-07-31 09:23:39

AngularJSWeb应用

2015-09-16 09:49:59

angularjsweb应用
点赞
收藏

51CTO技术栈公众号