如何正确嵌套多个 ttk.PanedWindow 个?
How to properly nest many ttk.PanedWindow one in other?
我想制作 UI 有 2 个条,可以用鼠标抓住并拖动以调整小部件大小。
为什么嵌套ttk.PanedWindow不显示?在此示例中,需要做什么才能在屏幕上显示标签 1 和 2?
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.bind('<Escape>', lambda e:root.quit())
paned_v = ttk.PanedWindow(root, orient=tk.VERTICAL)
paned_v.add(tk.Label(root, text='1'))
paned_v.add(tk.Label(root, text='2'))
paned_v.pack(fill=tk.BOTH, expand=True)
paned_h = ttk.PanedWindow(root, orient=tk.HORIZONTAL)
paned_h.add(tk.Label(root, text='3'))
paned_h.add(paned_v)
paned_h.pack(fill=tk.BOTH, expand=True)
root.mainloop()
窗格必须是窗格小部件的子项。如果您希望 pane_v
由 paned_h
管理,那么它必须是 paned_h
的子级,并且您不应该调用 paned_v.pack()
,因为它由 [=] 管理15=].
root = tk.Tk()
root.bind('<Escape>', lambda e:root.quit())
paned_h = ttk.PanedWindow(root, orient=tk.HORIZONTAL)
paned_h.pack(fill=tk.BOTH, expand=True)
paned_v = ttk.PanedWindow(paned_h, orient=tk.VERTICAL)
paned_v.add(tk.Label(paned_v, text='1'))
paned_v.add(tk.Label(paned_v, text='2'))
paned_h.add(tk.Label(paned_h, text='3'))
paned_h.add(paned_v)
严格来说,这不是必需的。但是,这是确保堆叠顺序正确的最简单方法。
我想制作 UI 有 2 个条,可以用鼠标抓住并拖动以调整小部件大小。
为什么嵌套ttk.PanedWindow不显示?在此示例中,需要做什么才能在屏幕上显示标签 1 和 2?
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.bind('<Escape>', lambda e:root.quit())
paned_v = ttk.PanedWindow(root, orient=tk.VERTICAL)
paned_v.add(tk.Label(root, text='1'))
paned_v.add(tk.Label(root, text='2'))
paned_v.pack(fill=tk.BOTH, expand=True)
paned_h = ttk.PanedWindow(root, orient=tk.HORIZONTAL)
paned_h.add(tk.Label(root, text='3'))
paned_h.add(paned_v)
paned_h.pack(fill=tk.BOTH, expand=True)
root.mainloop()
窗格必须是窗格小部件的子项。如果您希望 pane_v
由 paned_h
管理,那么它必须是 paned_h
的子级,并且您不应该调用 paned_v.pack()
,因为它由 [=] 管理15=].
root = tk.Tk()
root.bind('<Escape>', lambda e:root.quit())
paned_h = ttk.PanedWindow(root, orient=tk.HORIZONTAL)
paned_h.pack(fill=tk.BOTH, expand=True)
paned_v = ttk.PanedWindow(paned_h, orient=tk.VERTICAL)
paned_v.add(tk.Label(paned_v, text='1'))
paned_v.add(tk.Label(paned_v, text='2'))
paned_h.add(tk.Label(paned_h, text='3'))
paned_h.add(paned_v)
严格来说,这不是必需的。但是,这是确保堆叠顺序正确的最简单方法。