PyQt5 GUI应用程序工具包入门(1)

众所周知,PyQt5是一款优秀的GUI工具集,可用于python界面的快速开发。 本文采用Python3.6+PyCharm社区版进行PyQt5的开发。对于python环境和PyCharm的安装本文不再赘述。本文讲述怎样对PyCharm进行优化,使我们的PyQt开发更为方便。

添加外部的工具

PyQt的开发需要三个外部工具,分别为:

QtDesigner:可视化界面编辑器,生成.ui文件。

PyUIC:将QtDesigner生成的UI文件转换为py文件。

PyRcc:将资源文件转换为py文件。

图1 ExternalTool设置界面

单击菜单栏的“File”“settings…”调出settings对话框

选择“Tools”“External Tools”即显示如图1所示的工具界面,单击“+”即可增加扩展工具,弹出如图2所示的工具编辑界面。

图2 工具添加/设置界面

界面上表单的含义如下:

Name:工具名称,这里为QtDesigner工具;

Group:工具分组,由于我们设置的均为Qt工具,故均为:QT Tool;

Program:调用的外部程序,我们调用的为designer文件;

Parameters:程序参数;

Working Directory:工作目录。

其中以“$…$”包含的为宏命令,可单击“Insert Macro…”查看和添加,常用的宏值如下:

$FileName$:当前文件名,

$FileDir$:当前程序文件夹,

$PyinterpreterDirectory$:python目录。

三个工具的设置如下:

QtDesigner工具

名称:QtDesigner

程序:$PyInterpreterDirectory$\Library\bin\designer.exe

参数:无

工作目录:$FileDir$。

PyUIC工具

名称:QtDesigner

程序:$PyInterpreterDirectory$\python.exe

参数:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

工作目录:$FileDir$。

pyRCC工具

名称:QtDesigner

程序:$PyInterpreterDirectory$\Library\bin\pyrcc5.exe

参数:$FileName$ -o $FileNameWithoutAllExtensions$_rc.py

工作目录:$FileDir$。

至此,Qt常用的外部工具已添加完毕。以后可从菜单栏“Tool”中调用它们,或者在项目管理界面的文件名上单击鼠标右键也可找到调用命令。

定义模板

PyCharm模板的模板分为文件模板和活动模板,前者是一个文件的模板,后者是一条或多条语句的模板。灵活运用模板可以使开发效率成倍提高。

文件模板

文件模板在“settings…”对话框的“Editor”“File and Code Templates”中设置和查看。如图3所示。图3 文件模板

单击“+”号可创建模板,然后在Name文本框中输入名字,在Extension文本框中输入扩展名(如:py),在下面的大文本框中输入文件模板内容即可。 笔者为PyQt5开发建立了3个文件模板,2个py文件模板(窗口文件模板和主程序文件模板)和1个qrc文件模板(资源文件)。设置如下:

窗口文件模板

名称:QtWidget File

扩展名:py

内容:

主程序文件模板

名称:PyQt5Main

扩展名:py

内容:

资源文件模板

名称:resource File

扩展名:qrc

内容:

定义好文件模板后可以通过新建文件,方便得建立文件。

活动模板

活动模板在“settings…”对话框的“Editor”“Live Templates”中设置和查看。如图4所示。图4 活动模板

可以看到PyCharm中已经定义好了许多活动模板,如:main、iter、itere,所表示的代码如图4所示,我们可以输入模板名,然后按“Tab”键即可自动补全语句。 笔者为方便PyQt5的开发,定义了Widgets表示:from PyQt5.QtWidgets import *,以方便模块导入。读者可自行定义其他模板,以方便开发。

本文作者

小溪

土木工程硕士毕业,硕士期间利用Python进行数据处理和ABAQUS二次开发,现就职于上海某土木工程咨询公司,从事土木工程软件开发工作。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180114G034G100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券