首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一个应用程序中支持PyQt4和PyQt5的常见方法是什么?

在一个应用程序中支持PyQt4和PyQt5的常见方法是什么?
EN

Stack Overflow用户
提问于 2015-11-28 18:34:17
回答 1查看 2.2K关注 0票数 0

我想要创建一个同时适用于PyQt4和PyQt5的应用程序。

首先,我可以创建兼容性模块compat.py,如果找不到PyQt4,它就会退回到PyQt4:

代码语言:javascript
运行
复制
try:
    __import__('PyQt5')
    use_pyqt5 = True
except ImportError:
    use_pyqt5 = False

if use_pyqt5:
    from PyQt5.QtGui import QIcon as QIcon
else:
    from PyQt4.QtGui import QIcon as QIcon

之后,我可以从该模块导入与Qt相关的类,并检查PyQt4 4/5在逻辑上存在差异的compat.use_pyqt5

问题是,我想要使Qt版本可配置并依赖于命令行选项,并且它们被加载在不同的模块中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 16:30:52

问题并不是要同时支持PyQt4和PyQt5。它真正要问的是:我如何在全球范围内访问命令行选项?

一种解决方案是向处理命令行选项的模块添加一个options对象。此对象可以是一个简单的命名空间,它存储读取的任何选项,并以其他方式提供适当的默认值。然后,您只需要确保options对象在被任何其他可能需要它的模块导入之前已经完全初始化了。

这样的话,你就可以做这样的事情了:

代码语言:javascript
运行
复制
from utils import options

use_pyqt5 = False

if options.try_pyqt5:

    try:
        import PyQt5
        use_pyqt5 = True
    except ImportError:
        pass
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33974946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档