准备学习PyQt6,但家里旧笔记本运行Window 10越来越卡了,于是一怒之下换成了Ubuntu系统。在安装PyQt6时发现Linux系统下的教程太贫乏,尤其是配置designer的方法全是Window系统的,经过一晚上的折腾,终于研究明白怎么安装配置了!


(相关资料图)

演示用的是刚安装的Ubuntu虚拟机,已经安装好的机器没有必要不要轻易改动。尤其是物理机,配置好要供起来!

一、安装PyQt6及pyqt6-tools

step 0:检查pip是否正常

使用以下命令查看是否安装了pip(注意V要大写)。一般来说都会有(这一台虚拟机就没有,各种问题全遇到了)

如果不幸是上面的界面,按以下方法:

step 1:先尝试直接安装

这一步可以省略快进到step 2,因为执行的是当前目录的文件。但是各种教程上都有这一步

step 2:如果提示没有文件,可以通过curl进行下载,执行以下三行命令:

安装完毕后输入pip -V命令进行确认

step 3:pip换源。通过-i参数使用临时源会报错,提示该源不被信任,此处仅记录永久换源。(物理机安装的时候清华源有点慢,于是使用了阿里源)

在用户目录下创建“.pip”文件夹(前面有个点!!!)

将源信息写入到文件中(第三行等号后的内容要与url中域名一致,使用其他源时记得换成相应的域名):

如果不会用vi、vim等工具,或是工具无法正常使用,最后一行可以不执行,通过可视化工具进行,如下:进入用户主目录,即“home/用户名”文件夹,点开“显示隐藏文件”,进入“.pip”文件夹。

右键点击选择“用文本编辑器打开”,添加源即可。

step 4:安装pyqt6与pyqt6-tools(designer包含在pyqt6-tools中)

输入以下命令进行安装,只要提示成功即可,中间会因为版本问题有些ERROR,问题不大,有强迫症可以通过“==版本号”安装推荐的版本。

安装命令建议加上sudo,我在安装时没有加sudo,安装后“pyqt6-tools”命令显示不存在,可能是这个原因,解决方法看最后文章第三章step 3(下图的黄字其实已经说明问题了)。出现Successfully installed即可。

至此,pyqt6开发所需模块已安装完毕,可跳至第三部分配置vscode插件。

二、爬坑过程(不重要,主要讲思考过程和原理)

研究四五个小时终于研究明白了(纯纯Linux小白)。

在PyQt5中,Linux查找“designer”可执行文件(如果通过apt安装pyqt5tools-dev和pyqt5tools-dev-tools)、Windows找“”即可。而在PyQt6安装之后,试遍了所有designer文件、找遍了所有可能的目录,都不能成功打开图形化界面。在官方演示中(网页链接找不到了)给出的用法是:

在物理机上可行(可能是安装时用了sudo),于是想到可能换了启动方式,于是在网上搜到可以用whereis命令找到位置:

可以看到,designer是其中的一个参数。

终于找到了目标!并且看起来是个Python的文件,用文本编辑打开看看里面内容。

里面就是几行Python代码。

以下是错误尝试,正确请直接看文章第三部分。觉得挺有趣的就写出来了。

错误尝试1:

尝试将文件添加到pyqt integration插件的Qtdesigner:Path中:

右键PYQT:New Form,意料之外地弹出了错误信息:

经过谨慎的思考,我觉得应该是插件将“pyqt6-tools designer”整个当作文件路径进行打开,也就是说无法设置参数。

错误尝试2:

经过短暂的思考,我认为,想要能打开界面,这段程序中必定要有designer的指向,那么启动时这一长串内容可能包含了启动路径。

依据官方的介绍,PYQTDESIGNERPATH就是要找的路径,但它是空的。随即想到对代码进行调试。经过一个小时的Debug,决定关机睡觉~。(太菜了)

躺在床上翻来覆去睡不着,突然灵光一闪:“designer”是作为参数传进来的,那么直接修改参数就行了,不用管内部是怎么实现的。

成功尝试,解决插件“PYQT:New Form”功能:

于是对文件内容进行了修改,好在Python不需要逆向,直接改源码。复制pyqt6-tools,命名为designer,在import sys下添加('designer')。是个列表,存储了启动时的参数。

控制台输入“designer”成功启动!将文件路径配置到插件里,New Form也可成功执行,终于看到了曙光。

继续尝试,解决插件“PYQT:Edit In Designer”功能:

仔细研究pyqt integration插件可配置项目,有且只有Qtdesigner:Path这一项和designer有关,猜测要被在Designer中编辑的文件也是作为参数传给pyqt6-tools中。

(随手打上去的,没有实际创建)

猜想正确!剩下就是继续修改源码。

[0]是python文件名,‘designer’固定在第二,于是将源码修改为:

将append改为insert,并指定位置为1

插件启动,完美运行。下面开始技术总结。

三、vscode 插件配置

这部分是重点!!!

这部分是重点!!!

这部分是重点!!!

用习惯了“pyqt interation”插件,折腾了这么久全是因为它。插件安装就不说了,直接系统总结。

step 0:安装pyqt6及pyqt6-tools,第一部分已作介绍,不再赘述。

step 1:寻找“pyqt6-tools”文件

step 2:修改执行文件

进入查找出的文件目录,建议先复制一份,保留原文件。修改复制出的文件名为“designer”(名字无所谓,记住就行)。

注意:/.local/文件是隐藏文件夹,用gui界面需要开启“显示隐藏文件”

使用命令行比较方便:

用文本编辑器修改designer文件内容,插入“(1, 'designer')”

step 3:为pyuic6建立软链接(解决“pyqt6-tools”命令找不到的问题)

“pyqt6-tools”无法执行是因为在“/usr/bin/”中没有添加软链接,当然为designer和pyqt6-tools建立软链接在本文中是不需要的,最主要的是需要用到“pyuic6命令”。如果该命令无法执行,那么编译ui文件用到的“pyuic6”命令很可能也无法执行。

在命令行任意位置输入“pyuic6”,如果显示未找到命令,按以下步骤执行。

通过step 1的方法二获取到pyqt6-tools的地址,控制台中选中后按Ctrl+Shift+C复制,粘贴到以下命令中:

step 4:vscode设置

通过“文件-->首选项-->设置”,打开设置页面,搜索“pyqt”即可显示出安装的“pyqt integration”插件。

至此,全部设置结束~

(没睡几个小时,难免有漏洞,还望大家指正)

推荐内容