[英]Tkinter won't accurately reflect kwargs when making a new frame. How do I change inheriting frame background color?
在我的代码中,我创建了一个名为HistoryFrame
的 object ,它应该继承自tkinter.Frame
。 我想将我的HistoryFrame
的背景颜色更改为在其创建时传入的参数,并且当我打印 kwargs 时,它准确地反映了我在 {'bg':'blue', etc...} ,但它不会改变框架背景的实际颜色。
我该如何解决? 为什么会这样?
以下代码生成的应用程序图片。 代码如下。 V---V
import tkinter as tk
class HistoryFrame(tk.Frame):
def __init__(self, parent, *args, **kwargs):
print(kwargs)
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
button = tk.Button(self, text="hello", fg="blue")
button.pack(side=tk.TOP, fill=tk.X)
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.width, self.height = max(parent.winfo_screenwidth(), 200), max(
parent.winfo_screenheight(), 200
)
self.history_frame = HistoryFrame.HistoryFrame(
self, width=max(20, self.width // 4), height=self.height, bg="blue"
)
self.history_frame.pack(side=tk.LEFT, fill=tk.X)
if __name__ == "__main__":
root = tk.Tk()
root.geometry("650x250")
MainApplication(root).pack(side="top", fill="both", expand=True)
root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.