Hello World程序演示Qt项目的建立、编译、运行和发布
一、Qt项目的建立
1、选择项目模板。
选择“文件-->新建文件或工程”,在选择模板页面选择Qt C++项目中的“Qt Gui应用”一项,然后单击“选择”按钮。
2、输入项目信息。
在“项目介绍和位置”页面输入项目的名称为helloworld,然后单击创建路径右边的“浏览”按钮,选择把要创建的项目放在哪个位置:
3、输入类信息。
在“类信息”页面中创建一个自定义类。这里设定类名为HelloDialog,基类选择QDialog,表明该类继承自QDialog类,使用这个类可以生成一个对话框界面。这时下面的头文件、源文件和界面文件都会自动生成,保持默认即可:
4、设置项目管理。
此项目不涉及,直接单击“完成”:
5、完成项目设置。
这里只有一个Windows桌面版本的Qt4.7.2,所以默认选择它就可以了。然后单击“完成”按钮完成项目的创建。
项目建立完成后会直接进入编辑模式。
自动生成的项目文件列表如下:
双击hellodialog.ui文件可以进行界面设计,界面简单设计如下:
二、项目的编译、运行
可以使用快捷键Ctrl+R或者通过按下左下角的运行按钮 来编译运行程序。这时可能会弹出“保存修改”对话框。这是因为刚才在设计模式更改了界面,而hellodialog.ui文件被修改了但是还没有保存。现在要编译运行该程序,就要先保存所有文件。可以选中“构建之前总是先保存文件”选项,以后再运行程序时就可以自动保存文件。然后单击“保存所有文件”按钮:
运行结果如下:
直接运行生成的可执行文件(helloworld-build-desktop\debug目录下):(需要复制4个dll文件)
双击helloworld.exe运行,弹出如下所示的警告对话框,提示缺少mingwm10.dll文件,可以想到应用程序运行是需要dll动态链接库的,所以应该去Qt的安装目录下寻找该文件。在Qt安装目录的bin目录(笔者这里的路径是D:\Qt\4.7.2\bin)中找到该文件,把这里的mingwm10.dll文件复制到debug文件夹中。这时运行程序又会提示缺少其他的文件,可以依次将它们复制过来,一共有4个文件,分别是mingwm10.dll、libgcc_s_dw2-1.dll、QtCored4.dll和QtGuid4.dll。再次运行程序发现已经没有问题了。
直接运行生成的可执行文件(不需要复制dll文件,但需要设置系统环境变量)
如果想不复制dll文件就可以直接运行程序,那么需要将D:\Qt\4.7.2\bin目录加入到系统Path环境变量中去,这样程序运行时就可以自动找到bin目录中的dll文件了。
对于win7系统设置环境变量操作如下:
在变量值的最后添上“;D:\Qt\4.7.2\bin”(注意前面有一个英文的分号),然后单击确定即可。
三、程序的发布
现在程序已经编译完成,那么怎样来发布它,让它在别人的计算机上也能运行呢?前面生成的debug版本的程序依赖的dll文件很大,那是因为debug版本的程序中包含了调试信息,可以用来调试。而真正要发布程序时,要使用release版本。
helloworld程序的release版本的编译:
在左下角的目标选择器(Target selector)中将构建目标设置为Release,然后单击运行图标。
编译完成之后再看工程目录中的release目录中,已经生成了helloworld.exe文件。它的大小与前面的debug版本的helloworld.exe的大小相差很大。
如果前面已经添加了Path系统环境变量,那么现在就可以直接双击运行该程序。如果要使现在的Release版本的程序可以在别人的计算机上运行(当然,对方的计算机也要是windows平台),那么还是需要将几个dll文件与其一起发布。
可以在桌面上新建一个文件夹,重命名为“我的第一个Qt程序”,然后将release文件夹中的helloworld.exe复制过来,再去Qt安装目录的bin目录中将mingwm10.dll、libgcc_s_dw2-1.dll、QtCore4.dll和QtGui4.dll(注意不是QtCored4.dll和QtGuid4.dll,它们是debug版本的库文件)复制过来。现在整个文件夹一共有12MB,如果使用WinRAR等打包压缩软件对它进行压缩,就只有4MB了,已经到达了可以接受的程度,这时就可以将压缩包发布出去了。
Hello World程序演示Qt项目的建立、编译、运行和发布的更多相关文章
- Android studio升级后原有项目无法正常编译运行问题
Android studio工具升级后Gradle版本问题 背景 升级AndroidStudio到最新版本后,原来可正常编译输出AndroidTest的项目无法正常编译通过. 原因 升级后的Andro ...
- 通过命令行新建qt项目,并编译打包
ref: https://blog.csdn.net/weixin_42837024/article/details/81945656 平台 :Ubuntu 18.04 QT版本 :5.9.1 ( ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- qt 旧项目编译运行提示 “启动程序失败,路径或者权限错误?” 原因及解决方法
qt 旧项目编译运行提示 "启动程序失败,路径或者权限错误?" 原因及解决方法 原因 Qt Creator在打开项目文件的同时会生成.pro.user文件,.pro.user文件叫 ...
- 【golang-GUI开发】Qt项目的打包发布
这是本系列的第三篇文章,前两篇我们讲了qt的安装和编译,今天我们讲一讲程序的打包. 好像我们现在都没怎么讲到qt的使用,因为想要放开手脚写代码,一些基础是要打牢的. 不过请放心,下一篇文章开始我们就会 ...
- 创建Qt项目
创建Qt项目 1 创建Qt项目 2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对 ...
- Qt-第一个QML程序-1-项目工程的建立
这个小程序是我发的第一个完整的QMl程序,这个程序也会持续的更新,一步一步的完善起来,最后会有一个什么样的结果也是不知道,只是把自己目前掌握的QML相关的东西都慢慢的写进来,积累起来 先展示一下运行结 ...
- paip.c++ qt 项目工程互相引用的方法
paip.c++ qt 项目工程互相引用的方法 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/ ...
- QT-第一个程序 Hello QT , 以及QT creator介绍
第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include &l ...
随机推荐
- C#编程(三十一)----------泛型总结
C#泛型总结 C#中的所谓的泛型程序设计和C++中相应的模版类似. 泛型方法 C#中的泛型方法是指使用了类型参数的方法成员,案例: static void Main(string[] args) { ...
- 【linux】find命令仅返回文件名 不用返回完整的文件路径
正常查询 find /apps/swapping -name '*swapping*.jar' 在/apps/swapping 目录下 查找 文件名为 '包含swapping的并且以.java结尾的文 ...
- java.security.InvalidKeyException: Illegal key size aes解密失败
使用微信时定期提示:java.security.InvalidKeyException: Illegal key size和 com.qq.weixin.mp.aes.AesException: ae ...
- docker 容器间网络配置
创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...
- UITableViewCell图片视差效果
UITableViewCell图片视差效果 效果 源码 https://github.com/YouXianMing/Animations 细节 OffsetImageCell.m OffsetCel ...
- 黑镜第一至二季/全集Black Mirror迅雷下载
本季第一.二季 Black Mirror (2011-2013)看点:<黑镜>(Black Mirror)是一部由查理·布洛克主创.英国电视4台(Channel 4)于2011年12月播出 ...
- curl win
curl -H "tocken: 123456789" -H "userName: admin" http://39.18.10.2/log/v1/err ...
- Oracle行列转换小结
目录结构如下:行转列列转行[一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE Sql代码 create table TEST_TB_GRADE ( ID NUM ...
- 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
"/"应用程序中的服务器错误. 未能加载文件或程序集"Newtonsoft.Json"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 ...
- [leetcode]Palindrome Partitioning @ Python
原题地址:https://oj.leetcode.com/problems/palindrome-partitioning/ 题意: Given a string s, partition s suc ...