python-3.x Tkinter帧网格传播不工作

5kgi1eie  于 2023-03-13  发布在  Python
关注(0)|答案(1)|浏览(99)

伙计们,我正在使用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的问题,没有一个能帮我。当然我可以尝试用其他的方法来写这个接口,但是用框架来分隔物体对我来说太舒服了。

nbewdwxp

nbewdwxp1#

您正在为header_frame的子级使用pack,因此使用grid_propagate将不起作用。使用pack时需要使用pack_propagate

相关问题