Рамка banner_strip не отображается, когда я раскомментирую строку, начинающуюся с main_frame= self.create_widget
....
если строка закомментирована, то она отображается так, как я этого хочу. Также, когда я передаю row = 0
вместо 1 в self.banner_strip = self.create_widget()
, а затем раскомментирую вышеупомянутую строку, тогда появляется эта полоса кадра, но в середине кадра над меткой «Это какой-то текст». Любая идея, что я делаю неправильно здесь?
from tkinter import *
class Application():
def __init__(self, master):
self.master = master
self.master.geometry("700x400+250+150")
self.master.resizable(False, False)
self.banner_frame = self.create_widget(master_widget = self.master, widget = Frame(), width = 700, height = 70, bg = '#255869', row = 0, column = 0, bd = 0)
self.banner_label = self.create_widget(master_widget = self.banner_frame, widget = Label(), bg = '#255869', row = 0, column = 0, pady = 20, text = "This is some text")
self.banner_strip = self.create_widget(master_widget = self.banner_frame, widget = Frame(), width = 700, height = 10, bg = '#BCC947', row = 1, column = 0)
#self.main_frame = self.create_widget(self.master, widget = Frame(), width = 700, height = (400 - 80), bd = 0, row = 1, column = 0)
def create_widget(self, master_widget = None, widget = None, width = 0, height = 0, bg = None, fg = None, row = 0, column = 0, text = None, bd = None, padx = 0, pady = 0 ):
widget_type = type(widget)(width = width, height = height, bg = bg, fg = fg, text = text, bd = bd)
widget_type.grid(row = row, column = column)
return widget_type
cl = Tk()
c = Application(cl)
cl.mainloop()
Пожалуйста, помогите мне, если кто-то знает решение. Благодарю вас!
Редактировать: это точно такая же программа, но без использования метода create_widget()
. В этом label_frame row=0
и main_frame row=1
работают отлично
from tkinter import *
class Application():
def __init__(self, master):
self.master = master
self.master.geometry("700x400+250+150")
self.master.title("GetCaseQob v2.1")
self.master.resizable(False, False)
self.banner_frame = Frame(master, width = 700, height = 70, bd = 0, bg = '#255869')
self.banner_frame.grid(row = 0, column = 0)
self.banner_strip = Frame(self.banner_frame, width = 700, height = 10, bd = 0, bg = '#BCC947')
self.banner_strip.grid(row = 1, column = 0)
self.banner = Label(self.banner_frame, bg = '#255869', text = 'This is some text')
self.banner.grid(row = 0, column = 0, pady = 20)
self.main_frame = Frame(master, width = 700, height = (400-70), bd = 0)
self.main_frame.grid(row = 1, column = 0)
self.main_frame.grid_propagate(0)
cl = Tk()
c = Application(cl)
cl.mainloop()