我无法理解如何在tkinter中切换帧。
我使用的代码在Internet上已经变得非常流行,它通过将帧堆叠在另一个之上然后调用它们来切换帧。我无法理解几行代码(带有***
的代码)
import tkinter as tk
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__ (self, *args, **kwargs)
container=tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
self.frames={}
for F in (a, b, c):***
page_name=F.__name__***
frame=F(parent=container, controller=self)
self.frames[page_name]=frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("a")
def show_frame(self, page_name):
frame=self.frames[page_name]
frame.tkraise()
所以我有2个问题,第一个是为什么在for循环中a,b,c像变量那样写,而不像字符串那样写(当我要显示框架a时,我像字符串一样放置“ a” )。其次,__name__
在这种情况下会做什么,有什么必要。
答案 0 :(得分:1)
httpc.request
是类,a, b, c
为您提供类名作为字符串-从而创建字典
__name__
与 self.frames = { "a": a(), "b": b(), "c": c() }
然后"class_name_as_string": instance_of_class
使用show_frame("a")
来获取"class_name_as_string"
并显示它。
您可以跳过instance_of_class
,然后获得
__name__
使用 self.frames = {a: a(), b: b(), c: c()}
,则必须使用class: instance_of_class
中的类