百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

利用python自动生成qt工程文件,支持任意移动文件

off999 2024-10-14 12:15 92 浏览 0 评论

开发QT程序的时候,通常使用集成工具为QtCreator, 但是随着工程越来越大,添加的文件越来越多,如果想要重新调整目录结构,那就会很麻烦,特别是包含的头文件中有相对的目录。

为了解决Qt工程调整目录难的文件,本文利用QtCreator支持调用python的功能来解决该问题, 接下来就来详细说明解决问题的过程。

实现思路

使用过QtCreator工具的人,应该都会知道它使用的构建档文件的后缀名为pro, 所以,本文将介绍如何编写python文件来添加相关编译信息到pro文件,而python文件的主要功能则是检测工程目录的文件,并将相关文件添加到pro文件中,最后再将python文件的运行命令集成到QtCreator工具。

python文件生成pro的流程如下图所示,首先获取pro文件路径,先读取pro文件中的固定配置信息,然后读取所有依赖的文件路径、头文件、源文件和ui文件,最后将其重新添加到pro文件。

实现细节

实现获取pro文件路径的功能函数,其pro文件路径是由外部参数传递过来,其获取的方法为sys.argv[1]。

读取pro文件中固定的配置数据,从pro文件的开头开始读起,当检测到指定的字符串数据,则停止读取,并返回获取的配置数据。

查找依赖的文件路径,一共支持三个参数,第一个参数rootdir,表示根目录,即工程项目的顶层目录,第二个参数proDir,表示pro文件所在目录,第三个参数fileList是存储获取到的文件路径列表。注意,rootdir参数当作是proDir即可,这里做了区分,主要是考虑到根目录与pro文件的目录不在同一个目录下而做了预留扩展。

查找文件路径,一共支持四个参数,第一个和第二个参数与上面含义一样,这里不再说明,第三个参数fileList存储查找到的文件列表,第四个参数fileFilter则指定查找的文件类型。

保存信息到文件,支持四个参数,第一个参数file是文件句柄,第二个参数tag代表关键字,第三个参数lines则是tag对应的值,第四个参数comment表示注释,默认为空。

实现三个过滤文件类型的的函数,分别为ui文件、头文件、源文件

最后组合上面所有的基本函数,创建python文件的主流程。

集成工具

现在将上面创建的python文件updatePro.py集成到QtCreator中。

首先点击QtCreator的工具栏中的“工具”,然后依次选择外部-> Configure。

弹出的对话框中,点击左侧导航栏的“环境”,再点击右侧窗口中的“外部工具”,然后在该界面下,点击“添加工具”

接着按照下图红色箭头指向的编辑框进行操作,注意执行档则对应本机python的程序的路径,如果没有安装python3,那么需要先安装python3。

使用方法

完成上面所有的步骤之后,下来就来说明使用方法。

首先pro文件中添加下图红色方框的信息。

然后点击工具栏中的“工具”->”外部”, 再点击updatePro。

最后自动生成的pro文件的格式内容如下图所示,QMAKE_INCDIR表示依赖的文件路径,FORMS表示ui文件,HEADERS表示文件列表,SOURCES表示源文件。

概括总结

本文详细说明了利用python自动生成qt工程文件的过程,当移动文件,更改工程目录,那么只要重新执行python文件即可,但是该python文件还有很多待改进的地方,另外还需要考虑更多的场景,这些都有待于后续进一步优化,而文章主要提供解决问题的一种思路。

相关推荐

推荐一款Python的GUI可视化工具(python 可视化工具)

在Python基础语法学习完成后,进一步开发应用界面时,就需要涉及到GUI了,GUI全称是图形用户界面(GraphicalUserInterface,又称图形用户接口),采用图形方式显示的计算机操...

教你用Python绘制谷歌浏览器的3种图标

前两天在浏览matplotlib官方网站时,笔者无意中看到一个挺有意思的图片,就是用matplotlib制作的火狐浏览器的logo,也就是下面这个东东(网页地址是https://matplotlib....

小白学Python笔记:第二章 Python安装

Windows操作系统的python安装:Python提供Windows、Linux/UNIX、macOS及其他操作系统的安装包版本,结合自己的使用情况,此处仅记录windows操作系统的python...

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字一、项目功能利用Tkinter组件中的Canvas绘制图形和文字。二、项目分析要在窗体中绘制图形和文字,需先导入Tkinter组...

一文吃透Python虚拟环境(python虚拟环境安装和配置)

摘要在Python开发中,虚拟环境是一种重要的工具,用于隔离不同项目的依赖关系和环境配置。本文将基于windows平台介绍四种常用的Python虚拟环境创建工具:venv、virtualenv、pip...

小白也可以玩的Python爬虫库,收藏一下

最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。Playwright是...

python环境安装+配置教程(python安装后怎么配置环境变量)

安装python双击以下软件:弹出一下窗口需选择一些特定的选项默认选项不需要更改,点击next勾选以上选项,点击install进度条安装完毕即可。到以下界面,证明安装成功。接下来安装库文件返回电脑桌面...

colorama,一个超好用的 Python 库!

大家好,今天为大家分享一个超好用的Python库-colorama。Github地址:https://github.com/tartley/coloramaPythoncolorama库是一...

python制作仪表盘图(python绘制仪表盘)

今天教大家用pyecharts画仪表盘仪表盘(Gauge)是一种拟物化的图表,刻度表示度量,指针表示维度,指针角度表示数值。仪表盘图表就像汽车的速度表一样,有一个圆形的表盘及相应的刻度,有一个指针...

总结90条写Python程序的建议(python写作)

  1.首先  建议1、理解Pythonic概念—-详见Python中的《Python之禅》  建议2、编写Pythonic代码  (1)避免不规范代码,比如只用大小写区分变量、使用容易...

[oeasy]python0137_相加运算_python之禅_import_this_显式转化

变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串输入单个变量没有问题但是输入两个变量之后一相加就非常离谱添加图片注释,不超过1...

Python入门学习记录之一:变量(python中变量的规则)

写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...

掌握Python的"魔法":特殊方法与属性完全指南

在Python的世界里,以双下划线开头和结尾的"魔法成员"(如__init__、__str__)是面向对象编程的核心。它们赋予开发者定制类行为的超能力,让自定义对象像内置类型一样优雅工...

11个Python技巧 不Pythonic 实用大于纯粹

虽然Python有一套强大的设计哲学(体现在“Python之禅”中),但总有一些情况需要我们“打破规则”来解决特定问题。这触及了Python哲学中一个非常核心的理念:“实用主义胜于纯粹主义”...

Python 从入门到精通 第三课 诗意的Python之禅

导言:Python之禅,英文名是TheZenOfPython。最早由TimPeters在Python邮件列表中发表,它包含了影响Python编程语言设计的20条软件编写原则。它作为复活节彩蛋...

取消回复欢迎 发表评论: