伙计们,我正在使用tkinter,不能理解如何做一件事.我有这样的代码:
class MainApp(tkinter.Tk):
def __init__(self):
super(MainApp, self).__init__()
def main_window(self):
# Фреймы для вкладок
add_mods_frame = tkinter.Frame(self, width=1280, height=315) # Фрейм вкладки добавить моды
change_mod_structure_frame = tkinter.Frame(self) # Фрейм вкладки изменить конфигурацию мода
settings_frame = tkinter.Frame(self) # Фрейм вкладки настройки
header_frame = tkinter.Frame(self, width=1280, height=70) # Фрейм header
header_frame.configure(background='#1f1f1f')
# Изменение цвета фона в окне
self.configure(background='#1f1f1f')
# Создание стиля
mystyle = ttk.Style()
mystyle.theme_create("MyAppStyle", parent="alt", settings={
"TNotebook": {"configure": {"background": "#212224",
"borderwidth": "0",
"tabmargins": [0, 0, 0, 0]}},
"TNotebook.Tab": {"configure": {"padding": ["26", "15"],
"font": ('Roboto/Roboto_Bold.ttf', '20', 'bold'),
"foreground": "#a9b2b7",
"tabsmargin": [0, 0, 0, 0],
"background": "#28292c",
"borderwidth": "0",
"focuscolor": "#212224"},
"map": {"background": [('active', '#2f3634'), ('selected', '#212224')],
"foreground": [('active', "#a8b8a6"), ('selected', "#81878b")],
"focuscolor": [('active', "#2f3634")]}},
"TButton": {"configure": {"background": "#33393f",
"foreground": "#9ca9a2",
"font": ('Roboto/Roboto_Bold.ttf', '20', 'bold'),
"padding": ["26", "12"]},
"map": {"background": [('pressed', '#16232d')],
"foreground": [('pressed', '#82978c')]},
"layout": [('Button.border', {'sticky': 'nswe', 'border': '1', 'children':
[('Button.padding', {'sticky': 'nswe', 'children':
[('Button.label', {'sticky': 'nswe'})]})]})]}})
mystyle.theme_use("MyAppStyle")
# header
header_tab = ttk.Notebook(header_frame)
header_button_compile_mods = ttk.Button(header_frame, text="Создать моды", command=self.create_mods)
header_tab.add(add_mods_frame)
header_tab.add(change_mod_structure_frame)
header_tab.add(settings_frame)
header_tab.tab(0, text='Добавить мод')
header_tab.tab(1, text='Изменить состав мода')
header_tab.tab(2, text='Настройки')
header_frame.grid(row=0, column=0)
header_frame.grid_propagate(False)
header_tab.pack(side='left')
header_button_compile_mods.pack(side='right')
# Фрейм добавление модов
standart_item_label = ttk.Label(add_mods_frame, text='Стандартная Вещь')
custom_item_label = ttk.Label(add_mods_frame, text='Название вещи скина')
mod_name_label = ttk.Label(add_mods_frame, text='Название модификации')
standart_item_field = ttk.Entry(add_mods_frame)
custom_item_field = ttk.Entry(add_mods_frame)
mod_name_field = ttk.Entry(add_mods_frame)
standart_item_label.grid(row=0, column=0)
custom_item_label.grid(row=1, column=0)
mod_name_label.grid(row=2, column=0)
standart_item_field.grid(row=0, column=1)
custom_item_field.grid(row=1, column=1)
mod_name_field.grid(row=2, column=1)
tkinter.mainloop()
有我用grid_propagate(False)
为我的header_frame
,但宽度和高度为这个Frame
仍然不工作。我怎么能修复它。可能是我不明白这个方法是如何工作的或别的什么。不要恨我,如果解决方案是如此容易,但是我查了一些关于stackoverflow的问题,没有一个能帮我。当然我可以尝试用其他的方法来写这个接口,但是用框架来分隔物体对我来说太舒服了。
1条答案
按热度按时间nbewdwxp1#
您正在为
header_frame
的子级使用pack
,因此使用grid_propagate
将不起作用。使用pack
时需要使用pack_propagate
。