gpt4 book ai didi

python - 如何处理多个通用用户界面?

转载 作者:太空狗 更新时间:2023-10-29 21:35:47 25 4
gpt4 key购买 nike

我正在开发一个在 2 个不同平台上运行的 python 应用程序,即常规桌面 linux 和 Maemo 4。我们在两个平台上都使用 PyGTK,但在 Maemo 上有一些小调整以使其看起来不错,这些调整已实现如下:

if util.platform.MAEMO:
# do something fancy for maemo
else:
# regular pygtk

大约需要 15 个这样的 if 语句来使 UI 在 Maemo 4 上看起来和工作得很好。

这一直以来都非常易于管理。问题是不久前发布了 Maemo 的新版本(5,又名 fremantle),它与 Maemo 4 相比有一些很大的不同。我不想在整个 GUI 代码中添加一堆检查以便让所有 3 个平台都使用相同的代码库很好地工作,因为那样会变得困惑。我也不想为每个平台创建原始 GUI 代码的副本并针对特定平台简单地修改它(我想重复使用尽可能多的代码)。

那么,有什么方法可以让基于相同核心 UI 代码的不同平台拥有略微不同的 UI?我不认为这是一个特定于 Python 或 Maemo 的问题,我只是想知道这是如何完成的。

最佳答案

你可以在工厂里结束大部分这样的事情:

def createSpec():
if util.platform.MAEMO: return Maemo4Spec()
elif util.platform.MAEMO5: return Maemo5Spec()
return StandardPyGTKSpec()

然后,在您代码的早期某个地方,您只需调用该工厂:

 spec = createSpec()

现在,在其他任何有条件的地方,您只需调用必要的函数:

 spec.drawComboBox()

只要 drawComboBox() 处理平台特定的任何内容,您就应该处于良好状态。

关于python - 如何处理多个通用用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022448/

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