请看一下这个演示,让我知道为什么我不能将几何网格设置应用于笔记本选项卡小部件:
如你所见,我在lb1
lb1.网格(行=1,列=1,sticky='W',padx=5,pady=5,ipadx=5,
ipady=5个)
但是标签仍然在标签页的中间
import Tkinter
from Tkinter import *
import ttk
from ttk import *
app = Tk()
app.configure(background='DimGray')
app.geometry('600x600')
app.resizable(width=False, height=False)
note = Notebook(app)
tab1 = Frame(note)
tab2 = Frame(note)
tab3 = Frame(note)
note.add(tab1, text = "Tracing", compound=TOP)
note.add(tab2, text = "Network Details")
note.add(tab3, text = "Tab Three")
note.pack(fill=BOTH, expand=True)
lb1 = Label(tab1, text="Trace Object")
lb1.grid(row=1, column=1, sticky='E', padx=5, pady=5, ipadx=5, ipady=5)
lb1.pack()
variable = StringVar(app)
variable.set("Select From List")
cm = ttk.Combobox(tab1, textvariable=variable)
cm.config(values =('Select From Phase A', 'Select From Phase B'))
cm.grid(row=1, column=2, sticky='E', padx=5, pady=5, ipadx=5, ipady=5)
cm.pack()
app.mainloop()
这就是我希望达到的
最佳答案
不能同时使用多个几何图形管理器。
嗯,我也看到了同样的答案,但事实上,如果你不误用的话,你是可以的。这就是您的情况:您使用了多个几何管理器,但使用的方式不对。
你有两个选择:
选项1:
作为firnote
,您需要为pack()
小部件使用tab1
几何体管理器。这意味着您必须删除这两条线:
lb1.grid(row=1, column=1, sticky='E', padx=5, pady=5, ipadx=5, ipady=5)
以及:
cm.grid(row=1, column=2, sticky='E', padx=5, pady=5, ipadx=5, ipady=5)
选择2:
您想为
pack()
小部件使用note
几何体管理器,但您想为grid()
使用tab1
几何体管理器。您可以通过删除这两行代码并保留上面提到的前两行代码来安全地完成这项工作,而不会混淆Python解释器:lb1.pack()
以及:
cm.pack()
关于python - 将几何网格应用于tkinter Notebook页面中的小部件的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42934717/