我正在學習使用 tkinter 制作應用程式,同時我正在學習語言本身。我在一本書中找到了如何創建第二個視窗(設定視窗)的描述。但我不明白為什么self.parent = view.parent。
如果parent在類中未指定值,該值從何而來,PreferencesWindow():將兩個變數 ( 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)
在我的書中,這一刻沒有被解釋。
uj5u.com熱心網友回復:
這些是有關 Python(該語言)如何作業的基本問題。
您正在詢問引數傳遞和類屬性。
如果在類PreferencesWindow()中沒有指定父值從哪里來
def on_preference_menu_clicked(self):
preferenceswindow.PreferencesWindow(self)
這表示“創建一個新的 PreferencesWindow,并給它一個對我自己的參考,呼叫 View 類實體。”
然后通過以下def __init__(self, view):方式接收:這意味著“初始化新的 PreferencesWindow,并通過名稱'view'參考來自呼叫 View 類的任何內容”。這允許 PreferencesWindow 訪問來自呼叫類實體的變數,例如屬性 'parent'”。
self.parent = view.parent- 這個動作很常見,是為了方便,以避免必須手動傳遞“視圖”。它捕獲view.parent從中設定的“父”的值class View ... self.parent = parent
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369269.html
