「1.PyQt5 GUI 软件开发框架」4.使用Qt资源文件

「1.PyQt5 GUI 软件开发框架」4.使用Qt资源文件,第1张

使用Qt进行软件开发,不可避免要使用资源文件。本节我们做一个简单示例,通过使用Qt资源文件为应用程序及关闭按钮设置图标。

根据前面我们所讲述的内容,先创建PyCharm工程项目,然后创建Qt工程项目,在Qt工程项目中设计界面并创建资源文件。

界面中我们只放置一个“关闭”按钮,所以在此不做具体的描述。下面,我们创建资源文件。

在Qt Creator中选择“File” -> "New File or Project",然后选择“Qt”->"Qt Resource File",在File name中输入res,在项目中可以看到,我们创建了一个resqrc资源文件。

在资源文件上右击,选择”Open in Editor“即可打开资源文件编辑器。

在资源文件中首先需要创建一个前缀,名称可以根据具体的资源进行命名,我们在此处命名为:icons;然后单击”Add Files“,选择事先准备好的图标文件添加进来。

在按钮的属性编辑器中找到icon属性,点击下拉菜单中的”Choose Resource“,在对话框中选择对应的资源文件中的图标即可。

编译资源文件:

在PyCharm的工程项目中创建一个名为rccbat的批处理文件,其代码如下:

注意:编译资源文件时,生成的py文件名结尾必须是_rc,因为编译窗体文件后会产生如下语句:

编译窗体文件:

在PyCharm的工程项目中创建一个名为uicbat的批处理文件,其代码如下:

运行以上两个批处理文件,可以看到编译后的py文件已经生成。

执行程序后可以看到,界面中的关闭按钮显示了我们在Qt Creator中设置的图标。

引入图标类:

在主程序中app = QApplication(sysargv)语句后面增加设置图标的代码:

为”关闭“按钮添加单击事件代码:

运行程序即可看到应用程序的图标也可以显示了。

如果是指qt编辑器的话,点 文件 session manager 在左下方框中选中“启动时恢复上次会话”。

如果是指自己写代码实现这个功能,就是用qsetting类,加入配置信息后自动生成配置文件,每次打开软件时去读取配置文件。

应用程序正常初始化错误 1 VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在 C:windows\WinSxS 文件夹中,并用特定的文件夹\文件名称进行标识; 2

《qt5quickdll V10》百度网盘免费下载

nk3c   

软件名称:qt5quickdllV10

语言:简体中文

大小:705KB

类别:系统工具

介绍:qt5quickdll是电脑中非常重要的一个注册表文件。如果缺少的话就会提示“无法找到qt5quickdll”或“计算机缺少qt5quickdll”,那么用户可以下载这个dll文件轻松修复问题!

打包平台:安装有QT开发环境的linux系统

发布平台:未安装有QT开发环境的linux系统

以下使用到的路径需要根据自己环境不同进行修改:

    qt安装路径:/opt/Qt5125

    freetype安装路径:/opt/Qt5125/Tools/QtCreator/lib/Qt/lib/            //包含三个文件libfreetypeso、libfreetypeso6、libfreetypeso6170

    dbus安装路径:/opt/Qt5125/Tools/QtCreator/lib/Qt/lib/                //包含三个文件libdbus-1so、libdbus-1so3、libdbus-1so3260

    项目路径:/home/cs/Code/test/

    项目名称:test

使用到的脚本文件:

    copylibsh

        LibDir=$PWD"/lib"

        Target=$1

        lib_array=($(ldd $Target | grep -o "/" | grep -o "//[^[:space:]]"))

        $(mkdir $LibDir)

        for Variable in ${lib_array[@]}

        do

            cp "$Variable" $LibDir

        done

    copylib2sh

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libfreetypeso /

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libfreetypeso6 /

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libfreetypeso6170 /

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libdbus-1so /

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libdbus-1so3 /

        sudo cp /opt/Qt5125/Tools/QtCreator/lib/Qt/lib/libdbus-1so3260 /

    testsh

        appname=`basename $0 | sed s,\sh$,,`

        dirname=`dirname $0`

        tmp="${dirname#}"

        if [ "${dirname%$tmp}" != "/" ]; then

        dirname=$PWD/$dirname

        fi

        LD_LIBRARY_PATH=$dirname

        export LD_LIBRARY_PATH

        $dirname/$appname "$@"

    注意事项:该流程里的脚本都是777权限,如遇权限问题请使用 chmod 777 copylibsh 命令

    首先将程序release编译,在项目路径里找到编译生成的文件夹build-Test-Desktop_Qt_5_12_5_GCC_64bit-Release,在这个文件夹内(注意,很重要)建立  copylibsh 脚本,并执行 /copylibsh test 。执行完成之后应该有一个lib文件夹,将lib文件夹内的所有内容和test程序复制到一个新的文件夹下test-release。

    在QT安装目录下找到  /512/gcc_64/plugins/platforms 文件夹,建立  copylibsh  脚本,并执行  /copylibsh libqxcbso  。执行完成之后将这个 文件夹 复制到test-release文件夹中。然后在test-release/platforms文件夹中,将test-release/platforms/lib文件夹里的所有内容 剪切 到test-release文件夹里,并删除lib文件夹。

    在test-release目录下建立 copylib2sh 脚本,并执行 /copylib2sh 。

    至此,所有所需的库文件应该都打包完毕。

    在test-release目录下建立 testsh 脚本,利用该脚本启动程序,启动命令为 /testsh 。

    遗留问题点:

        1debug版本未测试,不知道是否可行。

        2platforms文件夹不仅在/512/gcc_64/plugins/platforms存在,还在/Tools/QtCreator/lib/Qt/plugins/platforms存在。在成功之前一直用的Tools目录下的,但是也有别的细节不一样,待考证。

        3脚本执行,或者说库的复制顺序似乎有关系。第一次copylibsh 和 第二次copylibsh 时会用一部分重叠。待考证哪个优先。

目前从事嵌入式系统下的Qt应用程序开发;

程序需要支持中文,需要想qt的字体目录下导入中文字体;

目前导入为微软雅黑字体;当时不知道setfamily的时候需要使用的是什么名称;

该如何解决呢?

Qt已经给出了解决方案了;

使用QFontDatabase类;

根据帮助文档:

Detailed Description

The QFontDatabase class provides information about the fonts available in the underlying window system

具体描述:

QFontDatabase类提供了当前系统下可用的字体的信息;

该类其中一个函数:

QStringList QFontDatabase::families ( WritingSystem writingSystem = Any ) const

Returns a sorted list of the available font families which support the writingSystem

返回支持writingSystem的所有字体类型

那么就可以使用这个函数了解我们需要的信息;

例如:

[cpp] view plaincopy

QFontDatabase database;

foreach (const QString &family, databasefamilies())

{

qDebug()<<family;

}

以上这段代码就可以枚举出系统支持的所有字体的名称;

[cpp] view plaincopy

QFontDatabase database;

foreach (const QString &family, databasefamilies(QFontDatabase::SimplifiedChinese))

{

qDebug()<<family;

}

以上这段代码就可以枚举出系统中所有支持中文的字体名称。

根据打印信息就能知道微软雅黑字体的名称了:

Microsoft YaHei

qttask - qttaskexe - 进程信息

进程文件: qttask or qttaskexe

进程名称: Quick Time Tray Icon

描述: Quick Time任务栏图标在你运行Quick Time的时候启动。

常见错误: N/A

是否为系统进程: 否

以上就是关于「1.PyQt5 GUI 软件开发框架」4.使用Qt资源文件全部的内容,包括:「1.PyQt5 GUI 软件开发框架」4.使用Qt资源文件、qt编程,如何实现在每次打开程序的时候都可以加载上一次的配置信息,例如第一次打开程序后把几个文件名、从一个Qt应用程序外部程序问题,怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10163635.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存