在 Tkinter 中将两个标签框并排放置
Place two labelframes next to each other in Tkinter
我想像下图那样并排显示两个标签框
Picture1。你知道怎么做吗?
当我尝试使用 labelframe 时,它没有留在原地,只是调整大小以将文本放入其中。
这就是我想要的,但标签框架中有 txt 居中
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('600x200')
style = ttk.Style(root)
root.tk.call('source', 'azure dark.tcl')
style.theme_use('azure')
lf1 = ttk.Labelframe(root, text='Labeltxt1', width=300,height=100)
lf1.grid(row=0,column=0)
lf2 = ttk.Labelframe(root, text='Labeltxt2', width=300,height=100)
lf2.grid(row=0,column=1)
root.mainloop()
这就是我得到的:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('600x200')
style = ttk.Style(root)
root.tk.call('source', 'azure dark.tcl')
style.theme_use('azure')
lf1 = ttk.Labelframe(root, text='Labeltxt1', width=300,height=100)
lf1.grid(row=0,column=0)
lf2 = ttk.Labelframe(root, text='Labeltxt2', width=300,height=100)
lf2.grid(row=0,column=1)
lb1= ttk.Label(lf1, text='txt1')
lb1.pack()
lb2= ttk.Label(lf2, text='txt2')
lb2.pack()
root.mainloop()
标签框未填满 window 的宽度。
希望我说得够清楚了。感谢您的帮助。
你需要通过root.rowconfigure()
和root.columnconfigure()
告诉布局管理器这两个Labelframe
填充所有可用的space。还需要在.grid(...)
中指定sticky='nsew'
。在这种情况下,您不需要指定 Labelframe
.
的 width
和 height
选项
...
root.rowconfigure(0, weight=1)
root.columnconfigure((0,1), weight=1)
lf1 = ttk.Labelframe(root, text='Labeltxt1')
lf1.grid(row=0, column=0, sticky='nsew')
lf2 = ttk.Labelframe(root, text='Labeltxt2')
lf2.grid(row=0, column=1, sticky='nsew')
...
我想像下图那样并排显示两个标签框 Picture1。你知道怎么做吗?
当我尝试使用 labelframe 时,它没有留在原地,只是调整大小以将文本放入其中。
这就是我想要的,但标签框架中有 txt 居中
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('600x200')
style = ttk.Style(root)
root.tk.call('source', 'azure dark.tcl')
style.theme_use('azure')
lf1 = ttk.Labelframe(root, text='Labeltxt1', width=300,height=100)
lf1.grid(row=0,column=0)
lf2 = ttk.Labelframe(root, text='Labeltxt2', width=300,height=100)
lf2.grid(row=0,column=1)
root.mainloop()
这就是我得到的:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('600x200')
style = ttk.Style(root)
root.tk.call('source', 'azure dark.tcl')
style.theme_use('azure')
lf1 = ttk.Labelframe(root, text='Labeltxt1', width=300,height=100)
lf1.grid(row=0,column=0)
lf2 = ttk.Labelframe(root, text='Labeltxt2', width=300,height=100)
lf2.grid(row=0,column=1)
lb1= ttk.Label(lf1, text='txt1')
lb1.pack()
lb2= ttk.Label(lf2, text='txt2')
lb2.pack()
root.mainloop()
标签框未填满 window 的宽度。
希望我说得够清楚了。感谢您的帮助。
你需要通过root.rowconfigure()
和root.columnconfigure()
告诉布局管理器这两个Labelframe
填充所有可用的space。还需要在.grid(...)
中指定sticky='nsew'
。在这种情况下,您不需要指定 Labelframe
.
width
和 height
选项
...
root.rowconfigure(0, weight=1)
root.columnconfigure((0,1), weight=1)
lf1 = ttk.Labelframe(root, text='Labeltxt1')
lf1.grid(row=0, column=0, sticky='nsew')
lf2 = ttk.Labelframe(root, text='Labeltxt2')
lf2.grid(row=0, column=1, sticky='nsew')
...