#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.