我一直在花时间重新组织一个gui项目。最初,我有一个包含“makeConfigWindow”和“makeMainWindow”等函数的文件,他们做了所有的事情来创建这些窗口。问题是,它是非常紧密耦合的,非常具体的,可重用的代码不适用于类似的任务。我决定尝试MVC,只使用gui部分,所以我在一个接口文件中创建了一个模型类、视图类和控制器类。每个的一个实例wx.应用程序(除了视图,每一帧都是新的)。你知道吗
我现在遇到的问题是,我似乎在重新发明轮子。我的模型只是从配置文件中获取信息,并在请求时将其吐出,但是通过直接引用配置文件,这个功能已经存在了。视图,它是wx.框架,最终得到了一堆由控制器调用的函数,如“changeBgColor(panel,color)”——问题是控制器可以从wx而不是视图中间人简单地调用这些函数。现在,控制器看起来和我原来的“makeMainWindow”函数一样具体。你知道吗
看起来MVC框架已经在那里了——配置是模型,wxPython本身是视图,大量的命令脚本是控制器。对的?你知道吗
我的问题是:如果不是这样,那么我应该如何构建gui?我最大的问题是gui最终保存了所有的东西,对象,引用,所有的东西,因为Mainloop是最后运行的唯一东西,减去一些线程做系统检查之类的,然后它们向gui抛出事件。你知道吗
大多数时候,我使用wxPython代码作为我的视图。如果事件处理程序需要加载配置或访问数据库,那么它将使用控制器来完成。我的模型通常与数据库相关(或ObjectListView)。wxPython代码应该只做与wxPython相关的事情。你知道吗
这意味着,如果你有任何东西在wx之外做任何事情,那么它可能会进入模型或控制器。控制器示例:
以下文章可能会对您有所帮助:
相关问题 更多 >
编程相关推荐