Почему Tkinter не заполняет мое окно по вертикали

#python #user-interface #tkinter #window

#python #пользовательский интерфейс #tkinter #окно

Вопрос:

Итак, я создаю свое первое приложение с графическим интерфейсом, используя Tkinter, и моя проблема в том, что всякий раз, когда я прошу, чтобы мое окно заполнило мой экран, более или менее четверти его остается пустым без каких-либо виджетов (например, so), я понятия не имею, откуда это происходит.

Вот весь соответствующий код:
GUI.py (основной графический код)

 from tkinter import *

from write_env import *

BGC = '#1e1e1e'
FGC = '#ced4d4'

root = Tk()
root.title("Gamebook Maker")

# Grid setup
root.grid()
root.grid_columnconfigure(0,weight=1)
root.grid_columnconfigure(1,weight=1)
root.grid_rowconfigure(0,weight=1)
root.grid_rowconfigure(1,weight=1)
root.update()

# Frames placement
write = write_environement(root, bgc = BGC, fgc = FGC)
write.grid(row=0, column=1, sticky='nsew')

paragraph_list = Listbox(root, width= 20, height= 35, bg = "#333333", fg = FGC)
paragraph_list.grid(row=0, column=0, sticky='nsew')
paragraph_list.insert(1, "test")


root.mainloop()    
  

write_env.py (код для виджетов с правой стороны):

 from tkinter import *

class write_environement(Frame):
    """ class for the writing/plotting module v0.1"""

    def __init__(self, parent, bgc, fgc):
        Frame.__init__(self, parent, bg="#36393f")

        self.grid(row=0, column=1, sticky='nsew')
        self.grid_columnconfigure(0, weight= 1)
        self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(1, weight=1)

        self.write_tab = Text(self, bg=bgc, fg=fgc, width= 80, height= 20, font=12)
        self.write_tab.config(wrap=WORD)
        self.write_tab.grid(row=0, column=0, sticky='nsew',padx=5, pady=5)

        self.followup_list = Listbox(self, width= 120, height= 10, bg = "#333333", fg = fgc)
        self.followup_list.grid(row=1, column=0, sticky='nsew',padx=5, pady=5)
        self.followup_list.insert(1, "test")
  

редактировать: комментарии Atlas453 решили проблему, спасибо

Комментарии:

1. Попробуйте удалить root.grid_rowconfigure(1,weight=1) , а также заменить root.update() на root.update_idletasks()

2. эту строку self.grid(row=0, column=1, sticky='nsew') тоже следует удалить, пока вы добавляете ее в свой основной модуль.

3. Вы создаете две строки в корневой сетке, но используете только строку 0.