部署 PyQt 5 开发环境

作者: import_hello | 来源:发表于2017-09-30 11:06 被阅读437次

    本文假设读者已经具备 Python 相关的基础知识,并不会介绍如何安装 Python,以及 pip 的使用方法。另外,我也是初学者,希望大家帮我指出错误,以求共同进步。

    转载请注明出处:http://www.jianshu.com/u/5e6f798c903a
    最后编辑时间:2017.12.06

    1. 基本环境

    关于 Anaconda:就目前而言,我尝试了的 Anaconda3-5.0.0-Windows-x86_64。但是由于某些未知的原因(或说是因为我的无知),其自带的 Qt Designer 总会在启动时给出错误提示。我尝试过重新安装整个 Anaconda3,但问题依旧无法解决。另外,我曾在 Anaconda3-4.4 下,成功运行过其自带的 Qt Designer。但当我更新了 Qt 相关的一些包后, Qt Designer 也给出了相同的错误提示。因此,建议作为初学者,尽量避免使用 Anaconda3-5.0.0。尽管上诉问题都可以通过自己努力的到解决,但是我们当前的目标是快速认识 Qt,而非不停的折腾开发环境。

    2. 关于 pyuic

    参考资料:Using Qt Designer

    Qt Designer 使用 XML 格式的 .ui 文件储存 GUI 界面,但并不会生成任何 C++ / Python 代码。Qt 内含的 uic utility 用于从 .ui 文件生成用于创建 GUI 的 C++ 代码。Qt 还包含 QUiLoader 类,该类允许应用程序加载 .ui 文件,并动态创建相应的用户界面。

    PyQt5 并没有打包 QUiLoader 类,而是包含了 uic Python 模块。 uic 模块一方面类似于 QUiLoader 类,可加载 .ui 文件,并动态创建用户界面。另一方面,也拥有和 uic utility 相似的功能, uic 模块也可用于从 .ui 文件生成用于创建 GUI 的 Python 代码。

    PyQt5 的 pyuic5 程序是 uic 模块的命令行接口,我们在配置 PyCharm 时,便会用到该命令。
    pyuic5 命令的语法如下:

    pyuic5 [options] .ui-file
    

    所有的命令行选项如下:

    • -h, --help:将帮助信息写入到 stdout
    • --version:将版本号写入到 stdout
    • -i <N>, --indent <N> :定义由 pyuic5 生成 Python 代码时,代码缩进的空格数 <N> 。如果 <N> 是 0 ,表示使用制表符缩进。默认值是 4。
    • -o<FILE>, --output <FILE> :由 pyuic5 生成的 Python 代码被写入到文件 <FILE>
    • -p, --preview :动态创建并显示 GUI。不会生成 Python 代码。
    • -x, --execute :生成的 Python 代码会包含一些附加代码,以保证整段代码可作为独立应用被执行时,同样可以创建并显示 GUI。也就是说附加代码保证了所生成的整个代码段可以独立运行,当我们使用 Eric6 编译 .ui 文件时,所得到的 Python 代码便会拥有这样的效果。
    • --import-from<PACKAGE> :在 5.6 版本中新加入的功能。使用 from <PACKAGE> import ... 导入资源模块,而不是使用 import ...
    • --from-imports :相当于指定 --import-from .
    • --resource-suffix<SUFFIX> :后缀 <SUFFIX> 会被追加到所有在 .ui 文件中被指定的资源文件的原始名称后。附加 <SUFFIX> 的新名称被用于由 pyrcc5 从资源文件生成的 Python 模块的名称。例如,如果在 .ui 文件中指定了名为 foo.qrc 的资源文件,那么该资源文件对应的 Python 模块的名称则是 foo_rc

    注意:由pyuic5 生成的代码不能保证与较久版本的 PyQt5 兼容。但是,可以保证这些代码与较高版本的 PyQt5 相兼容。如果无法你无法控制用户所使用的 PyQt5 的版本,那么在安装过程中则应该运行 pyuic5 或调用 compileUi() 。另一种办法是分发 .ui 文件(可被作为资源文件的一部分),并在应用程序中动态加载 .ui 文件。

    PyQt5.uic.pyuic.pypyuic5.exe 都是同一个对象,只是调用的方法不同。
    pyuic5 可被直接调用,pyuic 则需通过 python 调用。

    C:\Users\iwhal>python -m PyQt5.uic.pyuic --version
    Python User Interface Compiler 5.9.2 for Qt version 5.9.3
    
    C:\Users\iwhal>pyuic5 --version
    Python User Interface Compiler 5.9.2 for Qt version 5.9.3
    

    3. 关于 pyrcc

    参考资料:PyQt5资源系统

    • PyQt5 资源系统:
      PyQt5 支持 Qt 的资源系统。这是一种将资源(如 icon 和翻译文件)嵌入到应用程序中的工具。利用资源系统在打包和分发资源会更加轻松。
      .qrc 资源集合文件是一个 XML 格式的文件,用于指定需要被嵌入到应用程序中的资源文件。应用程序会以冒号作为开头,通过资源文件的原始名称引用相应的文件。
      相关的完整描述(包括 .qrc 文件的格式),请参考 Qt 文档中的 Qt Resource System。
    • pyrcc5:
      PyQt5 的 pyrcc5 模块相当于 Qt 的 rcc utility,并且两者的使用方式完全相同。pyrcc5 会读取 .qrc 文件和资源文件,并生成相应的 Python 模块。只需要在应用程序中 import 相应的 Python 资源模块,便可以像使用原始文件一样,使用相应的资源。

    4. 配置 PyCharm

    这一小节我们会对 PyCharm 进行配置,使其更加适合作为 PyQt 的开发工具。
    在 PyCharm 中依次选择:File -> Settings -> Tools -> External Tools
    然后使用下图中的 “+” 号,逐个添加下列三个外部工具。

    1. Qt_Designer
    2. PyUIC
    3. Pyrcc
    0x02 配置 PyCharm-00.png

    配置 Qt_Designer

    此工具用于调用 designer.exe ,请依照下图进行设置。
    注意:类似 $ProjectFileDir$ 的宏变量可点击 Insert macro... 进行插入,同时也会看到相应宏变量的解释。

    0x02 配置 PyCharm-01.png

    配置 PyUIC

    前面,我们已近介绍了 pyuic 模块,下面只需要按照命令语法进行配置即可。
    下图的配置方式会生成额外的代码,方便对模块进行测试。
    这种方式与通过 Eric6 编译形成的 .py 文件相同。
    Parameters:-o Ui_$FileNameWithoutExtension$.py -x $FilePath$

    0x02 配置 PyCharm-02.png

    配置 Pyrcc

    前面,我们已近介绍了 pyrcc 模块,这里只需要按照下图配置即可。

    0x02 配置 PyCharm-03.png

    5. Eric6

    Eric 在 PyQt5 开发的过程中拥有一些比 Pycharm 更加便捷的特性,所以建议大家同时配置好这两个 IDE。

    下载链接: eric-download

    安装 Eric6

    • 首先请务必按照 “1. 基本环境” 中的内容配置好基本环境。
    • 安装 QScintilla:pip install qscintilla
    • 安装 eric6:将 eric6-17.09.zip 解压后,找到 eric6-17.09 目录下的 install.py ,双击安装。(这个版本自带汉化,无需安装额外的汉化包)
    • 启动 eric6:点击 eric6-17.09\eric 目录下的 eric6.pyw 便可启动 eric6 了。

    配置 Eric6

    首次打开 Eric 时,会提示需要配置,点击 “确定” 后,便会进入配置界面。

    配置 自动完成:

    请依照下图进行设置。

    0x03 Eric6-00.png 0x03 Eric6-01.png

    配置 API

    请依照下图进行设置。
    点击 “从已安装的 API 中添加” 便可选取相应的 API。按图所示,选择好相应的 API 后,还需点击 “编译 API”。


    0x03 Eric6-02.png

    配置 Qt

    一般而言,Eric 会自动调用相关 “Qt 工具”,无需对此项进行配置。
    但是如果你的 Eric 无法启动 designer.exe ,那么请在 Qt 工具 -> Tools Directory 中填入designer.exe 的绝对路径。由于我们已经通过 PyQt-tools 安装了 Qt Designer,designer.exe 通常会位于pyqt5-tools 包中。
    我本机上的路径为 C:\Python36\Lib\site-packages\pyqt5-tools

    0x03 Eric6-03.png

    相关文章

      网友评论

        本文标题:部署 PyQt 5 开发环境

        本文链接:https://www.haomeiwen.com/subject/zlcwextx.html