tkinter模型 - 视图 - 控制器:深度嵌套的小部件调用控制器

时间:2017-05-16 00:13:28

标签: python model-view-controller view tkinter

我沿着MVC设计模式重构tkinter GUI。 Controller模块导入View类,View类向Controller发出请求。我有几种方法可以将更改注册到条目窗口小部件(StringVar跟踪,绑定等),但是如果窗口小部件是嵌套的并且回调处于更高级别会怎么样?请求向上传播的最佳方法是什么?例如,如果View的Frame具有一个具有更改状态的Widget的Frame,该怎么办?

我遇到的两个解决方案是:

  1. 俄罗斯玩偶方法:每个内层都使用对视图或控制器的引用进行实例化,因此小部件可以直接发出请求(例如,向ViewReference.call_controller(输入)或ControllerAlias.request(输入)这会留下从视图到小部件的痕迹痕迹。

  2. 家谱方法:递归地打电话给父母并询问他们是否有“要求控制者做事”#34;方法。如果没有,请问他们的父母。这似乎更脆弱和尴尬。

0 个答案:

没有答案