PythonMVC只是为了WXGUI如果不是它,那又怎么样?

2024-10-01 07:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在花时间重新组织一个gui项目。最初,我有一个包含“makeConfigWindow”和“makeMainWindow”等函数的文件,他们做了所有的事情来创建这些窗口。问题是,它是非常紧密耦合的,非常具体的,可重用的代码不适用于类似的任务。我决定尝试MVC,只使用gui部分,所以我在一个接口文件中创建了一个模型类、视图类和控制器类。每个的一个实例wx.应用程序(除了视图,每一帧都是新的)。你知道吗

我现在遇到的问题是,我似乎在重新发明轮子。我的模型只是从配置文件中获取信息,并在请求时将其吐出,但是通过直接引用配置文件,这个功能已经存在了。视图,它是wx.框架,最终得到了一堆由控制器调用的函数,如“changeBgColor(panel,color)”——问题是控制器可以从wx而不是视图中间人简单地调用这些函数。现在,控制器看起来和我原来的“makeMainWindow”函数一样具体。你知道吗

看起来MVC框架已经在那里了——配置是模型,wxPython本身是视图,大量的命令脚本是控制器。对的?你知道吗

我的问题是:如果不是这样,那么我应该如何构建gui?我最大的问题是gui最终保存了所有的东西,对象,引用,所有的东西,因为Mainloop是最后运行的唯一东西,减去一些线程做系统检查之类的,然后它们向gui抛出事件。你知道吗


Tags: 文件项目函数模型框架视图配置文件时间
1条回答
网友
1楼 · 发布于 2024-10-01 07:23:07

大多数时候,我使用wxPython代码作为我的视图。如果事件处理程序需要加载配置或访问数据库,那么它将使用控制器来完成。我的模型通常与数据库相关(或ObjectListView)。wxPython代码应该只做与wxPython相关的事情。你知道吗

这意味着,如果你有任何东西在wx之外做任何事情,那么它可能会进入模型或控制器。控制器示例:

  • 分析csv文件
  • 开始一个线程
  • 运行数据库查询

以下文章可能会对您有所帮助:

相关问题 更多 >