我正在尝试用 python 编写一个应用程序来控制使用串口的电机。这一切都在 CLI 情况下正常工作并且通常很稳定。但我想知道在此代码库之上添加 GUI 有多简单?
我想会有更多的代码,但是有没有一种简单的方法来检测像 GTK 这样的东西,所以它只在 GTK 存在时应用代码?
此外,一般情况下,在 Python 中创建 GUI:是否最好在代码中保留尽可能少的 GUI 细节并使用类似 GTK 的基于 XML 的方法(使用 gtk.glade.XML() 函数)?是否有其他 GUI 工具包具有与 Glade/XML/“Explode in Code”方法类似的方法?
感谢您的任何建议。
安迪
最佳答案
is there a simple way of detecting something like GTK, so it only applied the code when GTK was present?
首先,将您的应用分成 3 个独立的模块。
实际工作:
foo_core.py
。导入
foo_core
的 CLI 模块。将其命名为foo_cli.py
。导入
foo_core
的 GUI 模块。将其命名为foo_gui.pyw
。
foo_cli
模块如下所示。
import foo_core
import optparse
def main():
# parse the command-line options
# the real work is done by foo_core
if __name__ == "__main__":
main()
foo_gui
模块看起来像这样。
import foo_core
import gtk # or whatever
def main()
# build the GUI
# real work is done by foo_core under control of the GUI
if __name__ == "__main__":
main()
这通常就足够了。人们可以信任自己决定是想要 CLI 还是 GUI。
如果你想迷惑别人,你可以编写一个 foo.py
脚本来执行如下操作。
try:
import foo_gui
foo_gui.main()
except ImportError:
import foo_cli
foo_cli.main()
关于python - 我如何在 Python 应用程序之上创建一个 GUI,以便它可以执行 GUI 或 CLI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857634/