gpt4 book ai didi

python - 从 wx 框架类调用应用程序方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:39 26 4
gpt4 key购买 nike

我是从 wxPython 开始的,并且一直在努力完成我能得到的每一个教程和示例。然而,我遇到了一个小问题,它与 wx.App 和 wx.Frame 有关系,wx.Frame 应该包含特定的方法。几乎我见过的每个示例都没有超出布局/大小调整器和事件处理的范围,没有一个真正解决了 wxPython 项目的项目组织问题。

例如,我有一个获取文件夹列表的方法。大多数示例处理此问题的方法是将方法固定在框架类中。此方法有可能用于应用程序的其他几个部分,因此将其存储在应用程序类级别更有意义。

我应该如何组织和调用这些“通用”方法,以免弄乱我的框架类。

更新:

澄清一下,“文件夹列表”只是一个例子,我的实际方法做的工作更多。我的意思是我的代码不是特定于框架的。如果我在应用程序类中有这个,从我的框架中的事件方法调用它的最佳方法是什么。

我正在寻找实际的项目组织技术,而不是编程基础。

最佳答案

继承自 wxWidgets/wxPython 数据类型的类不应实现任何业务逻辑。 wxWidgets 是一个 GUI 库,因此 wxApp 或 wxFrame 的任何子类都应该专注于 GUI,即显示界面和响应用户操作。

做一些有用的代码应该从 wx 中分离出来,因为您可以稍后决定在某些 web 或控制台应用程序中使用它,并且您不想在这种情况下创建 wxApp 对象。您也可以稍后决定将一些计算移动到单独的“工作线程”,而您的 GUI 将成为“主线程”——响应迅速,并在长期计算期间正确重绘。

最后但同样重要的是 - 封装您的逻辑的类可能会在项目生命周期中增长。如果它们与您的 GUI 类混合,它们会增长得更快,最后它们变得如此复杂以至于您几乎无法调试它们...

当您不将逻辑中的错误与 GUI 中的错误(刷新/布局/进度条等)混合在一起时,将它们分开会导致干净的代码。这种方法还有另一个很好的特性 - 能够在 GUI 人员和逻辑人员之间拆分工作,他们可以在没有持续冲突的情况下完成他们的工作。

关于python - 从 wx 框架类调用应用程序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com