Я использую python для создания небольшого приложения (для личного использования / обучения), и у меня возникают проблемы с пониманием того, как работает фрейм-модуль от tkinter. Все, что я до сих пор делал, это пытался разместить цветные квадраты, чтобы визуально «отобразить» окно, но у меня уже есть проблемы.
- Я установил зеленую рамку "основного" окна (размер 600 * 400, можно изменять размер)
- рамка контейнера желтого цвета (600 * 400, чтобы она охватывала все окно и чтобы мы могли видеть зеленый фон из главного окна при изменении размера окна)
- и третий кадр синего цвета, содержащий желтый (450 * 400)
Проблема в том, что всякий раз, когда я пытаюсь «напечатать» синюю рамку, желтая - нет.
import tkinter
class leftFrame(tkinter.Frame):
def __init__(self, parent):
self.frame = tkinter.Frame(parent, width=450, height=400, bg="blue")
self.parent = parent
self.initialize()
def initialize(self):
self.frame.grid()
#if I comment this previous line, the yellow frame will be printed
#pass
class mainFrame(tkinter.Frame):
def __init__(self, master=None):
self.frame = tkinter.Frame(master, width=600, height=400, bg="yellow")
self.master = master
self.initialize()
def initialize(self):
self.frame.grid()
self.left = leftFrame(self.frame)
root = tkinter.Tk()
root.geometry("600x400")
root.wm_title("Tkinter test")
root.configure(bg="green")
#root.resizable(False, False)
app = mainFrame(root)
root.mainloop()
Я использовал классы для обработки своих «объектов макета», так как это казалось более чистым способом, но, поскольку я новичок в программировании на Python и объектах, есть вероятность, что я сделал что-то не так, если кто-то захочет объяснить мне, почему этот кусок кода не работает, это было бы очень полезно!
Спасибо;)