Python - 独立的程序逻辑和GUI代码?

发布于 2024-10-08 17:30:22 字数 288 浏览 3 评论 0原文

将程序逻辑与 GUI 代码分离的最佳方法是什么?

我想要使​​用相同的程序逻辑的不同 GUI(GTK、KDE、CLI)代码。

我正在考虑使用不同的 python 模块(winecellar-common、winecellar-gtk、winecellar-cli),不确定我将如何做到这一点以及它是否是最好的方法。

*已编辑*

只是为了添加我的问题,组织项目文件结构和使用不同模块构建平台的最佳方法是什么。请记住它主要在 Ubuntu 上使用。

What would be the best way of separating program logic to the GUI code?

I wanted different GUI (GTK, KDE, CLI) code using the same program logic.

I was thinking of using different python module (winecellar-common, winecellar-gtk, winecellar-cli) not sure how I would do this and if its the best way.

*EDITED*

Just to add to my question what would be the best way to organize the projects file structure and build platform with different modules. Keep in mind its mainly being used on Ubuntu.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

好倦 2024-10-15 17:30:22

在一个模块中定义业务逻辑的函数或类,并在另一个模块中定义演示文稿,使用这些函数来获取演示文稿。您几乎应该完全使用 GUI 模块中主模块中的函数和类。您应该对 CLI 执行相同的操作。这样,您就可以拥有具有不同接口的不同发行版,而不必为每个发行版创建不同的“逻辑”文件。

基本上,你的想法是正确的。只要尽可能将它们分开,这样a.)您就可以轻松支持多个接口,b.)您可以轻松地对接口进行更改。

Define functions or classes for your business logic in one module, and define your presentation in another, using those functions to get your presentation. You should almost entirely be using functions and classes from the main module in the GUI module. You should do the same thing for your CLI. That way, you can have different distributions with different interfaces, and not have to create a different "logic" file for each one.

Basically, you have the right idea. Just keep them as separate as possibility so that a.) you can support multiple interfaces easily and b.) you can easily make changes to the interfaces.

风为裳 2024-10-15 17:30:22

也许“模型-视图-控制器”模式对您有用。
有一个关于 wxPython 的很好的教程来实现这个架构:
http://wiki.wxpython.org/ModelViewController

Maybe "Model-View-Controller" pattern will be useful for you.
There is a nice tutorial with wxPython on implementing this architecture:
http://wiki.wxpython.org/ModelViewController

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文