我有三个问题!
问题 1: 我正在面板内创建一个标签,其大小可以更改。我想保持固定。有可能吗?
如果将光标移动到标签的上下限,您会看到光标变为屏幕调整格式。
问题 2: 我的按钮占据了面板的整个尺寸。如何在不创建空标签的情况下调整其大小?
问题 3: 天平还水平占据整个面板。是否可以更改其大小?
from tkinter import*
import tkinter
root = Tk()
root.geometry('900x500')
var_a = DoubleVar()
var_b = DoubleVar()
############# CREATING PANELS #####################
#----------- General Panel --------------#
panel_1 = PanedWindow(bd=4,orient = HORIZONTAL ,relief="raised")#, bg = "red")
panel_1.pack(fill=BOTH, expand=1)
#----------- Fist Panel --------------#
panel_3 = PanedWindow(panel_1, orient = VERTICAL, relief="raised")#, bg = "yellow")
panel_1.add(panel_3, minsize=200) #inserting on panel_1
#----------- Second Panel --------------#
panel_2 = PanedWindow(panel_1, orient = VERTICAL, relief="raised")#, bg = "blue")
panel_1.add(panel_2, minsize=800) #inserting on panel_1
label2=Label(panel_3,text="Pass the cursor below me")
panel_3.add(label2)
textbox2=Scale(panel_3,orient=HORIZONTAL,variable = var_a)
panel_3.add(textbox2)
label4=Label(panel_3,text="Pass the cursor above me too")
panel_3.add(label4)
textbox4=Scale(panel_3,orient=HORIZONTAL,variable = var_b)
panel_3.add(textbox4)
def bla():
pass
button1 = Button(panel_3,text="Why I have this size?", height = 1, width = 1, command= bla())
panel_3.add(button1)
tkinter.mainloop()
答案 0 :(得分:1)
根据您的问题,很明显,当您在 pack()
中添加 expand
方法和 panel
参数时,所有小部件容器或面板都会根据到它们的父容器,每个小部件都根据容器进行调整。
从我能够从你的问题中推断出你可以做的是添加带有 pack()
参数的 fill=X
方法,通过引用它只适合按钮的水平方向并使用小部件通过添加 expand=1
参数在面板中展开。
这是我所做的:
from tkinter import*
import tkinter
root = Tk()
root.geometry('900x500')
var_a = DoubleVar()
var_b = DoubleVar()
############# CREATING PANELS #####################
#----------- General Panel --------------#
panel_1 = PanedWindow(bd=4,orient = HORIZONTAL ,relief="raised")#, bg = "red")
panel_1.pack(fill=BOTH, expand=1)
#----------- Fist Panel --------------#
panel_3 = PanedWindow(panel_1, orient = VERTICAL, relief="raised")#, bg = "yellow")
panel_1.add(panel_3, minsize=200) #inserting on panel_1
#----------- Second Panel --------------#
panel_2 = PanedWindow(panel_1, orient = VERTICAL, relief="raised")#, bg = "blue")
panel_1.add(panel_2, minsize=800) #inserting on panel_1
label2=Label(panel_3,text="Pass the cursor below me")
panel_3.add(label2)
textbox2=Scale(panel_3,orient=HORIZONTAL,variable = var_a)
panel_3.add(textbox2)
label4=Label(panel_3,text="Pass the cursor above me too")
panel_3.add(label4)
textbox4=Scale(panel_3,orient=HORIZONTAL,variable = var_b)
panel_3.add(textbox4)
def bla():
pass
button1 = Button(panel_3,text="Why I have this size?", height = 0, width = 0, command= bla())
panel_3.add(button1)
button1.pack(fill=X, expand=1) # Only fits in X (horizontal direction), expands according to the panel
tkinter.mainloop()
请注意,如果您想调整缩放小部件的大小,您可以使用 width
和 height
参数,但这仅适用于几何管理器,例如 place()
,在这种情况下您可以使用几何管理器 pack()
根据面板维护关系和扩展,但是您不能更改其宽度,因为作为控制和组织小部件的几何管理器,您只能使用 in 扩展和更改比例的高度在这种情况下 width
更改缩放小部件的高度。
有关详细信息,请参阅有关 geometry manager pack()
的更多信息