因此,我学习了类和方法,并试图通过在一个类中使用init方法来制作多个框架。 下面是我做的事情:
from tkinter import *
import random
from PIL import ImageTk, Image
win = Tk()
win.attributes('-fullscreen', True)
# Define Frame Class
class MyFrame:
def __init__(self, master):
frame = Frame(master, width = win.winfo_screenwidth(),
height = win.winfo_screenheight(),
bg='black')
frame.pack()
def FrameOne():
frameone = MyFrame(win)
def FrameTwo():
frametwo = MyFrame(win)
#Call Frame (This is where I want the following frames to have different unique attributes)
FrameOne()
FrameTwo()
win.mainloop()
我的问题是我如何设置不同的框架背景,边框和其他框架属性,使每个框架都有独特的属性。
在使用类时指定框架参数的最简单方法是将关键字args传递给框架。 通过在init中的参数末尾添加**kwargs
,可以非常容易地实现这一点。 然后,您可以像在声明一个框架时通常所做的那样,遍历所有的参数。
代码如下所示:
from tkinter import *
import random
from PIL import ImageTk, Image
win = Tk()
win.attributes('-fullscreen', True)
# Define Frame Class
class MyFrame:
def __init__(self, master, **kwargs):
frame = Frame(master, **kwargs)
frame.pack()
def FrameOne():
frameone = MyFrame(win, width = win.winfo_screenwidth(),
height = win.winfo_screenheight()//2,
bg='black')
def FrameTwo():
frametwo = MyFrame(win, width=win.winfo_screenwidth(),
height = win.winfo_screenheight()//2,
bg='blue')
#Call Frame (This is where I want the following frames to have different unique attributes)
FrameOne()
FrameTwo()
win.mainloop()
注意:如果要指定应用于所有框架的默认参数,请将它们添加到声明中的,**kwargs
之前。 例如:框架(窗口,bg=“white”,**kwargs)