原文链接

目录

前言

Frame与Labelframe都是容器,用来存放其他控件,也是用来更好的管理布局。
我一般是用来存放一组相关的控件,让Frame与Labelframe成为其他控件的父控件。

(一)Frame

(1)说明:

tk.Frame(master, option*)
一般用颜色来区分Frame的位置

(2)源代码:

  1. import tkinter as tk
  2. win = tk.Tk()
  3. # 定义第一个容器
  4. frame_left = tk.Frame(win, bg="green")
  5. frame_left.place(relx=0.2, rely=0.2, relwidth=0.3, relheight=0.6)
  6. label_1 = tk.Label(frame_left, text="富强")
  7. label_1.place(relx=0.2, rely=0.2)
  8. label_2 = tk.Label(frame_left, text="民主")
  9. label_2.place(relx=0.6, rely=0.2)
  10. label_3 = tk.Label(frame_left, text="文明")
  11. label_3.place(relx=0.2, rely=0.6)
  12. label_4 = tk.Label(frame_left, text="和谐")
  13. label_4.place(relx=0.6, rely=0.6)
  14. # 定义第二个容器
  15. frame_right = tk.Frame(win, bg="yellow")
  16. frame_right.place(relx=0.5, rely=0.2, relwidth=0.3, relheight=0.6)
  17. label_1 = tk.Label(frame_right, text="自由")
  18. label_1.place(relx=0.2, rely=0.2)
  19. label_2 = tk.Label(frame_right, text="平等")
  20. label_2.place(relx=0.6, rely=0.2)
  21. label_3 = tk.Label(frame_right, text="公正")
  22. label_3.place(relx=0.2, rely=0.6)
  23. label_4 = tk.Label(frame_right, text="法治")
  24. label_4.place(relx=0.6, rely=0.6)
  25. win.mainloop()

(3)输出效果:

tkinter学习系列之(七)Frame与Labelframe 控件 - 图1

(二)Labelframe

(1)说明:

大体上,Labelframe与Frame属性选项一样。
Labelframe有两点不同于Frame:

  1. Labelframe默认的边框使tk.GROOVE,relief=tk.GROOVE
  2. Labelframe还可以再边框写文字,即:text=”文字”

边框文字的位置:

默认是:labelanchor=”wn”
tkinter学习系列之(七)Frame与Labelframe 控件 - 图2

(2)源代码:

  1. import tkinter as tk
  2. win = tk.Tk()
  3. # 定义第一个容器
  4. frame_left = tk.LabelFrame(win, text="国家层面", labelanchor="n")
  5. frame_left.place(relx=0.2, rely=0.2, relwidth=0.3, relheight=0.6)
  6. label_1 = tk.Label(frame_left, text="富强")
  7. label_1.place(relx=0.2, rely=0.2)
  8. label_2 = tk.Label(frame_left, text="民主")
  9. label_2.place(relx=0.6, rely=0.2)
  10. label_3 = tk.Label(frame_left, text="文明")
  11. label_3.place(relx=0.2, rely=0.6)
  12. label_4 = tk.Label(frame_left, text="和谐")
  13. label_4.place(relx=0.6, rely=0.6)
  14. # 定义第二个容器
  15. frame_right = tk.LabelFrame(win, text="社会层面", labelanchor="n")
  16. frame_right.place(relx=0.5, rely=0.2, relwidth=0.3, relheight=0.6)
  17. label_1 = tk.Label(frame_right, text="自由")
  18. label_1.place(relx=0.2, rely=0.2)
  19. label_2 = tk.Label(frame_right, text="平等")
  20. label_2.place(relx=0.6, rely=0.2)
  21. label_3 = tk.Label(frame_right, text="公正")
  22. label_3.place(relx=0.2, rely=0.6)
  23. label_4 = tk.Label(frame_right, text="法治")
  24. label_4.place(relx=0.6, rely=0.6)
  25. win.mainloop()

(3)输出效果:

tkinter学习系列之(七)Frame与Labelframe 控件 - 图3

作者:Mark

日期:2019/02/15 周五