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 ...
随机推荐
- (ios7) 解决代码布局View, ios7 中 subView 高度增加StatusBar20dp的问题,保证Ios6,ios7代码一致
在ios7 布局中,Status Bar 和 ToolBar ,NavigateBar 等都包含在ViewControl的主View中. 这样原来ios6 的View布局 整体向上移动了20dp,下面 ...
- ExtJS动态设置表头
if(document.getElementById("lxdj_radio").checked){ colQd = new Ext.grid.ColumnModel(colMAr ...
- TextKit简单示例
TextKit简单示例 效果 源码 https://github.com/YouXianMing/Animations // // TextKitLoadImageController.m // An ...
- 好汉两个半第十二季/全集Two and a Half Men迅雷下载
本季Two And A Half Men Season 12 (2014)看点:<好汉两个半>的“半个”是因为第一季播出时杰克年纪太小,只能算半个.故事就在这三个主角和他们周围的女人中发生 ...
- 《Python自然语言处理》
<Python自然语言处理> 基本信息 作者: (美)Steven Bird Ewan Klein Edward Loper 出版社:人民邮电出版社 ISBN:97871153 ...
- Mysql 区分大小写进行查询
区分大小写的查询: 因为MySQL的查询是默认不区分大小写的: 如果有些时候需要区分大小写,我们就需要binary这个关键字了. 可以这样用,在stud表中查找sname中带’j’ /’J’: 先不写 ...
- mysqldump参数详细说明
Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --al ...
- frp错误处理:login to server failed: authorization failed
frp使用过程中会出现各种错误信息,有些朋友不太清楚,打算记录一些常见的错误返回代码,这里介绍一下frpc客户端[W] [control.go:111] login to server failed: ...
- pchar,pwidechar,pansichar作为返回参数时内存访问错误
function Test:pachr: var str: string; begin str := 'Test Char'; result:=pchar(str); end; 上面的Te ...
- go语言之进阶篇主协程先退出
1.主协程先退出 示例: package main import ( "fmt" "time" ) //主协程退出了,其它子协程也要跟着退出 func main ...