类和tkinter.这个表达是什么意思



我正在学习使用tkinter制作应用程序,同时也在学习语言本身。我在一本书中找到了关于如何创建第二个窗口(设置窗口(的描述。但我不明白为什么self.parent = view.parent

如果PreferencesWindow():类中没有指定parent值,那么它从哪里来?将两个变量(self.parent = view.parent(分隔开的点是什么?什么是视图?

我的主模块(View类(:

import preferenceswindow
class View():
def __init__(self, parent, controller):
self.controller = controller
self.parent = parent
self.create_gui()

def create_edit_menu(self):
self.edit_menu.add_command(label="Preferences", command=self.on_preference_menu_clicked)
def on_preference_menu_clicked(self):
preferenceswindow.PreferencesWindow(self)    
def create_gui(controller_instance):
root = Tk()
root.title("APP")
View(root, controller_instance)
root.mainloop()

首选项类如下所示:

class PreferencesWindow():
def __init__(self, view):
self.parent = view.parent
self.view = view
self.create_prefereces_window()

def create_prefereces_window(self):
self.pref_window = Toplevel(self.parent)
self.pref_window.title("preferences")
self.pref_window.transient(self.parent)

在我的书中没有解释这一时刻。

这些是与Python(语言(如何工作有关的基本问题。

您询问的是参数传递和类属性。

如果在类PreferencesWindow((中未指定父值,则父值来自何处

def on_preference_menu_clicked(self):
preferenceswindow.PreferencesWindow(self) 

上面写着";创建一个新的PreferencesWindow,并给它一个对我自己(调用View类实例(的引用">

这随后由CCD_ 6接收;初始化新的PreferencesWindow,并以名称"View"引用调用View类中的任何内容;。这允许PreferencesWindow访问调用类实例中的变量,例如属性"parent";。

self.parent = view.parent-此操作很常见,以避免手动传递"视图"。它从class View ... self.parent = parent中设置的view.parent中捕获"parent"的值

最新更新