Frame 框架
Frame 是 tkinter 里可以用来放置其他元件的“框架”,每个 Frame 都很像一个小视窗,透过 Frame 的应用,就能更弹性的配置各种元件,这篇教学会介绍如何在 tkinter 视窗里加入 Frame 框架。
快速导览:
因为 Google Colab 不支援 tkinter,所以请使用本机环境 ( 参考:使用 Python 虚拟环境 ) 或使用 Anaconda Jupyter 进行实作 ( 参考:使用 Anaconda )。
加入 Frame 框架
建立 tkinter 视窗对象后,透过 Frame 方法,就能在视窗对象中建立 Frame 框架,必要的参数有一个,表示要加入的视窗对象,建立 Frame 框架后再使用 pack() 方法将其加入 ( 参考 pack 参数设定 ),下方的程序码执行后,除了会加入一个 Frame,还会在 Frame 中加入一个 Label,显示 hello 的文字 ( 位置、大小和颜色都使用默认值 )。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
frame = tk.Frame(root) # 加入 Frame 框架
frame.pack()
label = tk.Label(frame, text='hello') # 將 Label 放在指定的 Frame 裡
label.pack()
root.mainloop()
Frame 框架参数设定
加入 Frame 之后,可以透过 Frame 的参数调整内容的样式,下方列出 Frame 和其他元件相同的参数:
| 参数 | 说明 |
|---|---|
| padx | 内容和标签左右边界的间距 ( px ),默认 1。 |
| pady | 内容和标签上下边界的间距 ( px ),默认 1。 |
| bg/background | 背景颜色,可以使用十六进制色码或颜色名称。 |
| cursor | 鼠标移动到标签的样式,可以设定 arrow、circle、cross、plus...等,默认 arrow。 |
| relief | 边框样式,可以设定 flat、sunken、raised、groove、ridge、solid,默认 flat。 |
| bd/borderwidth | 边框粗细,默认 1。 |
设定 Frame 样式与位置
Frame 框架默认宽高尺寸和内容的最大宽高相同,而最后呈现在视窗里的位置,则以 Frame 摆放的顺序来决定,以下方的程序码而言,虽然 Label1 比 Label2 早放入,但因为分别放在不同的 Frame 里,最后因为 Frame1 比较晚放到视窗里,呈现的结果就会摆在后方。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
frame1 = tk.Frame(root, pady=10, padx=10, bg='#f90') # 第一個 Frame 元件
frame2 = tk.Frame(root, pady=10, padx=10, bg='#09c') # 第二個 Frame 元件
label1 = tk.Label(frame1, text='hello', width=10) # 放到 frame1 裡的 label
label1.pack()
label2 = tk.Label(frame2, text='world', width=10) # 放到 frame2 裡的 label
label2.pack()
frame2.pack() # 先放 frame2
frame1.pack() # 再放 frame1
root.mainloop()
微信扫码关注
抖音扫码关注