使用Qt开发过程中遇到的几个小问题

一、打包Qt应用程序

一、对于Qt Quick Application发布方式

1、把relaese下的.exe和数据库复制到一个文件夹gu中
2、从开始菜单打开 Qt 命令行,进入D:\gu\文件夹:

    cd D:\gu    或者是 cd /d d:\gu

3、然后使用 windeployqt 工具命令找到对应的(qml)路径:

   windeployqt gu.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml

二、Qt Widgets Application可执行程序发布方式

1、release 里面,找到 gu.exe ,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\gu\ 文件夹里面。
2、然后从开始菜单打开 Qt 命令行,输入命令 :

    cd /d D:\gu

然后使用 windeployqt 工具命令:

   windeployqt gu.exe

最后可以在 D:\gu 文件夹里看到 windeployqt 工具自动复制的插件文件夹
和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。

把 D:\gu 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。
D:\gu 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,
其他的都保留。

二、获取系统管理员权限

运用Qt开发应用程序,有时需要使应用程序获取管理员权限,但仅仅运用Qt开发应用程序时,只需要做以下三步:

  1. 首先用文本文档创建uac.manifest文件;
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level='requireAdministrator' uiAccess='false' />
    </requestedPrivileges>
  </security>
</trustInfo>
</assembly>
  1. 然后,创建uac.rc文件;
IDI_ICON1 ICON DISCARDABLE "SViva.ico"
1 24 "uac.manifest"
  1. 最后在工程项目.pro中添加
RC_FILE +=uac.rc。

三、在Qt应用软件中调用MFC类型的.exe可能或存在的问题

我遇到的问题是,当把应用程序安装到有空格的路径中,比如C:\Program Files文件加下,导致软件调用mfc.exe失败。

解决方法:对获取到的路径添加双引号
比如:

QString strexePath = QCoreApplication::applicationDirPath();
QString strExeFileName = "\"";  //给路径添加双引号
strExeFileName += strExeFileName + "/MFCDemo.exe\""; //给路径添加反双引号
QProcess* pProcess = new QProcess(nullptr);
int niRet = pProcess->execute(strExeFileName);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值