我在 python 和 Tkinter 中有一个我不理解的行为。我定义了自己的框架类,并希望设置某些选项,例如边框宽度和浮雕,以便我定义的每个框架都使用这些设置。我做了
from Tkinter import *
class BaseFrame(Frame):
def __init(self,master=None,cnf={}):
Frame.__init__(self, master,cnf)
def main():
root = Tk()
f = BaseFrame(root)
l1 = Label(f,text='test')
l2 = Label(f,text='longtext')
l1.pack()
l2.pack()
f.pack()
root.mainloop()
if __name__ == '__main__':
main()
现在一切都在预期中。现在我尝试将设置添加到 BaseFrame,因此每一帧都会传递这些设置。
我添加到我的初始化函数:
self.configure(bg='red')
并感到惊讶,因为这个指令似乎被全班完全忽略了。如果我在 f 的创建调用中添加一个选项 bg='red':
f = BaseFrame(root,bg='red')
有用。
Frame.configure(self,bg='red')
也不起作用,以及其他一些奇怪的结构。无论我尝试什么,我都只能在创建对象时设置设置。在init函数中执行此表单似乎不起作用。
现在,如何设置选项?我错过了什么基本的东西吗?
谢谢您的帮助。