我想把我的代码分成几个文件,因为我再也找不到路了。我决定编写一个只创建 GUI 的文件,如下所示:
# userinterface.py
class Userinterface(object):
def __init__(self, controller):
self.controller = controller
self.buildGUI()
return
def buildGUI():
# build lots of widgets and stuff
widget = tk.Thewidget(options=values, command=self.controller.onclick)
根据用户要求读取所有相关条目的功能以及计算数据的计算和解释应该发生在不同的文件/模块中。所以我创建了一个对象来代表我的控件集。然后,我将创建 GUI 并移交 controlset 对象,以便 GUI 知道要求谁执行任何操作。像这样:
# main.py
import userinterface as gui
class Controls(object):
def onclick(self):
# read values from widgets and do stuff
var1 = GUI.widget_entry.get()
# Call some other function with var1 etc.
if __name__ == '__main__':
GUI_controls = Controls()
GUI = gui.UserInterface(GUI_controls)
一切正常,但这是继续的正确方式吗?将有其他模块和文件发挥作用。据我了解,GUI_controls-object 可以发送和接收来自所有不同模块的数据,从而管理程序。
这就是 Model-View-Whatever/Model-View-Controller 的含义吗?(MVW/MVC)还是有更好的概念来解决这个问题?