我有一個tkinter
應用程序,我已經創建了類。使用Tkinter的另一個類的功能
第一個是class MainWindow()
,其中主窗口正在繪製。 另一個是class SettingsWindow()
,其中選項窗口正在繪製。
我要用class2中的class1使用on_exit
方法。如何正確使用它?
還有一件事,如何正確創建SettingsWindow
?我在下面拋出錯誤的方式,這表明我錯過了論點。
mainWindow = MainWindow() TypeError: init() missing 1 required positional argument: 'master'
代碼:
class MainWindow():
def __init__(self, master):
self.master = master
...
some widgets
...
# Trying to create SettingsWindow object
def open_settings(self):
settingsWindowsToplevel = Toplevel()
settingsWindow = SettingsWindow(self, MainWindow)
# The function i'm gonna use in another class
def on_exit(self):
self.master.exit_button()
class SettingsWindow():
def __init__(self, parent, master):
self.master = master
...
some widgets again
...
# Creating main window
def main():
root = Tk()
mainWindow = MainWindow(root)
root.mainloop()
if __name__ == "__main__":
main()
有很多功能,我需要從另一個類推出,我可以不知道該怎麼做正確的方式與tkinter
。
謝謝。
'SettingsWindow'可能有這將是'MainWindow'和父屬性主屬性這將是你已經定義的。 – Hugo
@ Hugo嘗試鍵入'class SettingsWindow(MainWindow)',但是在這種情況下,'def __init__'不起作用,告訴我我錯過了調用超類。請問,你可以用你的解釋向GitHub做一個提交或問題嗎?謝謝。 – Senpos
繼承是絕對不*解決方案。 –