窗口管理
tk.TK()
:创建主窗口对象。
-
参数:无。
-
返回值:返回一个 Tkinter 主窗口对象。
import tkinter as tk
root = tk.Tk() # 创建主窗口
root.mainloop()
:启动 Tkinter 主事件循环,使窗口保持显示并等待用户交互。
-
参数:无。
-
返回值:无。
root.mainloop() # 进入主事件循环
控件
Label
:显示文本或图像的标签控件。
-
参数:
master
:父窗口或父控件。text
:标签显示的文本内容。font
:字体设置(如("Arial", 16)
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
-
返回值:返回一个标签控件对象。
label = tk.Label(root, text="Hello, Tkinter!", font=("Arial", 16))
label.pack()
Button
:触发事件的按钮控件。
-
参数:
master
:父窗口或父控件。text
:按钮显示的文本内容。command
:按钮点击时触发的函数。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
-
返回值:返回一个按钮控件对象。
def on_button_click():
print("Button clicked!")
button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack()
Entry
:单行文本输入框,允许用户输入文本。
参数:
master
:父窗口或父控件。font
:字体设置(如("Arial", 16)
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个文本输入框对象。
entry = tk.Entry(root, font=("Arial", 16))
entry.pack()
Text
:多行文本输入框,允许用户输入多行文本。
参数:
master
:父窗口或父控件。font
:字体设置(如("Arial", 16)
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个多行文本输入框对象。
text = tk.Text(root, font=("Arial", 16), height=5, width=30)
text.pack()
Checkbutton
:复选框控件,允许用户进行多选。
参数:
master
:父窗口或父控件。text
:复选框显示的文本内容。variable
:与复选框关联的变量(通常是tk.IntVar
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个复选框控件对象。
var = tk.IntVar()
checkbutton = tk.Checkbutton(root, text="Option 1", variable=var)
checkbutton.pack()
Radiobutton
:单选按钮控件,允许用户在多个选项中进行单选。
参数:
master
:父窗口或父控件。text
:单选按钮显示的文本内容。variable
:与一组单选按钮关联的变量(通常是tk.IntVar
)。value
:单选按钮的值,当被选中时将赋予variable
。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个单选按钮控件对象。
var = tk.IntVar()
radiobutton1 = tk.Radiobutton(root, text="Option 1", variable=var, value=1)
radiobutton2 = tk.Radiobutton(root, text="Option 2", variable=var, value=2)
radiobutton1.pack()
radiobutton2.pack()
Listbox
:列表框控件,允许用户选择一个或多个选项。
参数:
master
:父窗口或父控件。height
:列表框的高度(显示的行数)。selectmode
:选择模式(如tk.SINGLE
、tk.MULTIPLE
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个列表框控件对象。
listbox = tk.Listbox(root, height=5, selectmode=tk.MULTIPLE)
listbox.pack()
listbox.insert(tk.END, "Item 1")
listbox.insert(tk.END, "Item 2")
Canvas
:画布控件,允许绘制图形、显示图像和创建复杂布局。
参数:
master
:父窗口或父控件。width
:画布的宽度。height
:画布的高度。- 其他可选参数:如
bg
(背景颜色)等。
返回值:返回一个画布控件对象。
canvas = tk.Canvas(root, width=300, height=200, bg="white")
canvas.pack()
canvas.create_line(0, 0, 200, 100)
canvas.create_rectangle(50, 50, 150, 150, fill="blue")
Scale
:滑块控件,允许用户在一定范围内选择一个值。
参数:
master
:父窗口或父控件。from_
:滑块的最小值。to
:滑块的最大值。orient
:滑块的方向(tk.HORIZONTAL
或tk.VERTICAL
)。variable
:与滑块关联的变量(通常是tk.DoubleVar
)。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个滑块控件对象。
var = tk.DoubleVar()
scale = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL, variable=var)
scale.pack()
Spinbox
:微调控件,允许用户在一定范围内选择一个值,通过按钮递增或递减。
参数:
master
:父窗口或父控件。from_
:微调控件的最小值。to
:微调控件的最大值。- 其他可选参数:如
bg
(背景颜色)、fg
(前景颜色)等。
返回值:返回一个微调控件对象。
spinbox = tk.Spinbox(root, from_=0, to=10)
spinbox.pack()
Scrollbar
:滚动条控件,用于在其他控件(如 Text
、Canvas
等)中实现滚动。
参数:
master
:父窗口或父控件。orient
:滚动条的方向(tk.HORIZONTAL
或tk.VERTICAL
)。- 其他可选参数:如
bg
(背景颜色)等。
返回值:返回一个滚动条控件对象。
scrollbar = tk.Scrollbar(root, orient=tk.VERTICAL)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text = tk.Text(root, yscrollcommand=scrollbar.set)
text.pack(side=tk.LEFT, fill=tk.BOTH)
scrollbar.config(command=text.yview)
Menu
:菜单控件,用于创建菜单栏、下拉菜单和弹出菜单。
参数:
master
:父窗口或父控件。- 其他可选参数:如
bg
(背景颜色)等。
返回值:返回一个菜单控件对象。
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
root.config(menu=menubar)
布局管理
pack()
:按顺序排列控件,可以是垂直或水平。
-
参数:
side
:控件放置的位置(tk.TOP
、tk.BOTTOM
、tk.LEFT
、tk.RIGHT
)。fill
:控件是否填充可用空间(tk.X
、tk.Y
、tk.BOTH
)。expand
:控件是否扩展以填充剩余空间(布尔值)。padx
、pady
:控件周围的水平和垂直填充。
-
返回值:无。
label.pack(pady=20)
button.pack(pady=10)
grid()
:基于网格系统排列控件,类似于表格。
-
参数:
row
:控件所在的行索引。column
:控件所在的列索引。padx
、pady
:控件周围的水平和垂直填充。sticky
:控件对齐方式(如tk.W
、tk.E
、tk.N
、tk.S
,表示西、东、北、南)。
-
返回值:无。
label.grid(row=0, column=0, padx=20, pady=20)
button.grid(row=1, column=0, padx=20, pady=10)
事件处理
command
:在按钮控件中使用,指定按钮点击时的回调函数。
- 参数:函数名。
- 返回值:无。
def on_button_click():
print("Button clicked!")
button = tk.Button(root, text="Click Me", command=on_button_click)
bind()
:将事件绑定到控件,当事件发生时,触发指定的函数。
-
参数:
event
:事件描述字符串(如"<Button-1>"
表示鼠标左键单击)。handler
:事件处理函数。
-
返回值:无。
def on_click(event):
print("Label clicked!")
label.bind("<Button-1>", on_click)
控件配置
config()
:更改控件的属性。
-
参数:要更改的属性及其新值。
-
返回值:无。
label.config(text="New Text")
button.config(bg="blue")
get()
:获取文本控件(如 Entry
)的内容。
- 参数:无。
- 返回值:返回控件的内容字符串。
user_text = entry.get()
print(user_text)