我有一个名为 App 的主类,它调用 4 个控制器。方法 start_from_home_page() 创建一个类型为 HomePage 的对象,我希望该对象能够访问我将作为参数传递的所有 4 个控制器。方法如下:
def start_from_home_page(self, fileSystemController, widgetController, logicController):
from pages.HomePage import HomePage
self.homePage = HomePage(self, fileSystemController, widgetController, logicController)
self.homePage.grid(row = 0, column = 0, sticky = 'nsew')
self.homePage.tkraise()
这是 'App' 类
class App(ctk.CTk):
def __init__(self, title, dim):
# main setup
super().__init__()
self.title(title)
self.geometry(f'{dim[0]}x{dim[1]}')
self.minsize(dim[0],dim[1])
os.chdir('/Users/mauri5566/Desktop/AST-CVE')
self.widgetController = WidgetController(self)
self.fileSystemController = FileSystemController(self)
self.logicController = LogicController(self)
self.navigationController = NavigationController(self)
self.navigationController.start_from_home_page(self.fileSystemController, self.widgetController, self.logicController)
self.mainloop()
App('AST-CVE', (1000,800))
以下代码显示了HomePage类的初始部分(继承自ctk.CTkFrame)。我收到以下错误:
bad screen distance ".!filesystemcontroller"
那是因为第三个参数应该是框架的宽度。但是我不需要这个,我只是想让类通过将控制器作为参数传递来访问控制器,我该怎么做?
这是 HomePage 类:
class HomePage(ctk.CTkFrame):
def __init__(self, navigationController: NavigationController,
fileSystemController: FileSystemController,
widgetController: WidgetController,
logicController: LogicController):
super().__init__(navigationController, fileSystemController, widgetController, logicController)
为了清楚起见,这就是 ctk.CTkFrame 对象的结构:
class CTkFrame(CTkBaseClass):
def __init__(self,
master: Any,
width: int = 200,
height: int = 200,
corner_radius: Optional[Union[int, str]] = None,
border_width: Optional[Union[int, str]] = None,
bg_color: Union[str, Tuple[str, str]] = "transparent",
fg_color: Optional[Union[str, Tuple[str, str]]] = None,
border_color: Optional[Union[str, Tuple[str, str]]] = None,
background_corner_colors: Union[Tuple[Union[str, Tuple[str, str]]], None] = None,
overwrite_preferred_drawing_method: Union[str, None] = None,
**kwargs):
您不应该将这些参数传递给
super.__init__
。没有必要,因为超类对它们一无所知。