Python中的Tkinter库是一个用于创建图形用户界面(GUI)的Python标准库,它提供了一系列的小部件(widgets),用于构建窗口、按钮、文本框等GUI元素。本篇文章主要介绍了组件中“文本组件”。

文本组件

在Tkinter中,文本类组件和标签组件用于显示和编辑文本。以下是几个组件的简要说明:

  • Label - 标签组件用于显示文本或图像,但它不能编辑。它主要用于界面上显示信息。【pack() 函数是一个几何管理器方法,用于自动地安排窗口中的组件(widgets)的位置。】
label = tk.Label(root, text="这是一个标签")
   label.pack()
  • 1.
  • 2.
  • Text - 文本组件是一个多行文本框,用户可以在其中编辑文本。它支持文本的插入、删除和格式化。
text = tk.Text(root, height=4, width=30)
  text.pack()
  • 1.
  • 2.
  • Spinbox - 微调框组件是一个输入框,允许用户通过上下按钮选择一个值的范围。用户也可以直接在框中输入值。
spinbox = tk.Spinbox(root, from_=1, to=10, width=5)
  spinbox.pack()
  • 1.
  • 2.
  • Entry - 输入框组件是一个单行文本输入框,用户可以在其中输入和编辑文本。
entry = tk.Entry(root, width=20)
   entry.pack()
  • 1.
  • 2.
  • LabelFrame -LabelFrame 是一个非常有用的组件,它提供了一个带标签的框架,可以用于组织和分组其他组件。LabelFrame 组件不仅可以显示一个标签,还可以在其内部放置其他组件,比如按钮、文本框、滑动条等。这使得界面更加整洁和易于管理。
# 创建LabelFrame组件
label_frame = tk.LabelFrame(root, text="选择年龄")
label_frame.pack(pady=20)

# 在LabelFrame内创建Spinbox组件
spinbox = tk.Spinbox(label_frame, from_=1, to=100, width=5)
spinbox.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • Scale - 用于创建滑动条,允许用户通过滑动选择一个值。滑动条可以是水平的或垂直的,并且可以设置一个值的范围。用户可以点击滑动条的两端或直接点击滑动按钮来选择值。
import tkinter as tk

root = tk.Tk()
root.title("Scale 组件示例")

# 创建一个水平滑动条,范围从0到100
scale = tk.Scale(root, from_=0, to=100, orient='horizontal')
scale.pack()

# 创建一个垂直滑动条,范围从0到50
v_scale = tk.Scale(root, from_=0, to=50, orient='vertical', label="垂直滑动条")
v_scale.pack()


root.mainloop()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
示例小结

下面是一个包含上述组件的简单示例,运行以下代码,你将看到一个包含标签、输入框、微调框、滚动条和文本框的窗口:

import tkinter as tk

root = tk.Tk()
root.title("文本和标签组件示例")

# 创建Label组件
label = tk.Label(root, text="请输入您的姓名:")
label.pack()

# 创建Entry组件
entry = tk.Entry(root, width=20)
entry.pack()

# 创建LabelFrame组件
label_frame = tk.LabelFrame(root, text="选择年龄")
label_frame.pack(pady=20)

# 在LabelFrame内创建Spinbox组件
spinbox = tk.Spinbox(label_frame, from_=1, to=100, width=5)
spinbox.pack()

label = tk.Label(root, text="滚动条:")
label.pack()
# 创建一个水平滑动条,范围从0到100
scale = tk.Scale(root, from_=0, to=100, orient='horizontal')
scale.pack()

# 可以添加一个标签来显示滑动条的当前值
def show_value():
    value = scale.get()
    value_label.config(text=f"当前值:{value}")

# 每次滑动条的值改变时,更新标签
scale.bind("<Motion>", lambda event: show_value())

# 创建一个标签显示滑动条的初始值
value_label = tk.Label(root, text="当前值:0")
value_label.pack()


# 创建Text组件
text = tk.Text(root, height=4, width=30)
text.pack(pady=20)

root.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.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

运行结果图:

GUI界面开发之tkinter(二) 学习文本组件_Text