#python #user-interface #tkinter
#python #пользовательский интерфейс #tkinter
Вопрос:
есть ли способ установить ширину и высоту для labelframe в tkinter, потому что, если я введу определенную высоту и ширину при создании labelframe, он фактически примет правильное значение, но только если рамка пуста. Иначе, если я что-то помещу, рамка метки примет высоту и ширину объекта с запасом.
serverlabel = tk.LabelFrame(root, text="Servers",bg="#11ba71",relief="solid", width=320, height=430,padx=5,pady=5)
serverlabel.place(x=320,y=0)
serverlabel пуст, и он имеет хороший размер :
optionlabel = tk.LabelFrame(root, text="Options",bg="#11ba71",relief="solid",width=200, height=50,padx=5,pady=5)
optionlabel.grid(column=0, row=3, sticky=tk.W)
settingsbutton = tk.Button(optionlabel, text="Paramètre", command=parameter)
settingsbutton.pack()
...
но здесь optionlabel составляет всего 112×107 пикселей вместо 200×50 :
Не могли бы вы мне помочь, пожалуйста?
Комментарии:
1. Если вы помещаете кнопки внутри
optionlabel
usingpack()
, затем вызываетеoptionlabel.pack_propagate(0)
afteroptionlabel.grid(...)
. Но тогда вы не сможете увидеть все кнопки, потому что высота недостаточно высока, чтобы их показывать.2. @acw1668 но есть способ установить ширину и высоту метки, не заботясь о том, как вставить виджет объекта внутрь?
3. Да, вы можете. Мой комментарий основан только на вашем опубликованном коде.
4. @acw1668 Итак, какой метод я должен рассмотреть, чтобы вставить виджет внутрь?
5. Это зависит от вашего дизайна. Как я уже сказал в своем комментарии, если вы используете
pack()
, то вам нужно позвонитьoptionlabel.pack_propagate(0)
. Если вы используетеgrid()
, то вам нужно вызватьoptionlabel.grid_propagate(0)
. Если вы используетеplace()
, ничего не требуется.