【Python】Tkinter图形用户界面

窗口管理

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.SINGLEtk.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.HORIZONTALtk.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:滚动条控件,用于在其他控件(如 TextCanvas 等)中实现滚动。

参数

  • master:父窗口或父控件。
  • orient:滚动条的方向(tk.HORIZONTALtk.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.TOPtk.BOTTOMtk.LEFTtk.RIGHT)。
    • fill:控件是否填充可用空间(tk.Xtk.Ytk.BOTH)。
    • expand:控件是否扩展以填充剩余空间(布尔值)。
    • padxpady:控件周围的水平和垂直填充。
  • 返回值:无。

label.pack(pady=20)
button.pack(pady=10)

grid():基于网格系统排列控件,类似于表格。

  • 参数

    • row:控件所在的行索引。
    • column:控件所在的列索引。
    • padxpady:控件周围的水平和垂直填充。
    • sticky:控件对齐方式(如 tk.Wtk.Etk.Ntk.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)
  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值