一、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项目的建立、编译、运行和发布的更多相关文章

  1. Android studio升级后原有项目无法正常编译运行问题

    Android studio工具升级后Gradle版本问题 背景 升级AndroidStudio到最新版本后,原来可正常编译输出AndroidTest的项目无法正常编译通过. 原因 升级后的Andro ...

  2. 通过命令行新建qt项目,并编译打包

    ref: https://blog.csdn.net/weixin_42837024/article/details/81945656 平台 :Ubuntu 18.04 QT版本   :5.9.1 ( ...

  3. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  4. qt 旧项目编译运行提示 “启动程序失败,路径或者权限错误?” 原因及解决方法

    qt 旧项目编译运行提示 "启动程序失败,路径或者权限错误?" 原因及解决方法 原因 Qt Creator在打开项目文件的同时会生成.pro.user文件,.pro.user文件叫 ...

  5. 【golang-GUI开发】Qt项目的打包发布

    这是本系列的第三篇文章,前两篇我们讲了qt的安装和编译,今天我们讲一讲程序的打包. 好像我们现在都没怎么讲到qt的使用,因为想要放开手脚写代码,一些基础是要打牢的. 不过请放心,下一篇文章开始我们就会 ...

  6. 创建Qt项目

    创建Qt项目 1     创建Qt项目 2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对 ...

  7. Qt-第一个QML程序-1-项目工程的建立

    这个小程序是我发的第一个完整的QMl程序,这个程序也会持续的更新,一步一步的完善起来,最后会有一个什么样的结果也是不知道,只是把自己目前掌握的QML相关的东西都慢慢的写进来,积累起来 先展示一下运行结 ...

  8. paip.c++ qt 项目工程互相引用的方法

    paip.c++ qt 项目工程互相引用的方法 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/ ...

  9. QT-第一个程序 Hello QT , 以及QT creator介绍

    第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include &l ...

随机推荐

  1. NSNotificationCenter消息注册与撤销

    苹果的消息机制是个非常好用的东西,当需要在类的各个实例之间传递消息或者写一些事件驱动的程序时,绝对是个不错的工具.但是使用时一不小心就会造成引用已经被dealloc的对象的错误,引起程序崩溃.于是,在 ...

  2. Android上的单元测试

    Android上的单元测试 http://www.sina.com.cn  2009年12月04日 16:07  IT168.com [IT168 技术文档]任何程序的开发都离不开单元测试来保证其健壮 ...

  3. 【C++】拷贝构造函数和赋值符函数

    在C++中,调用拷贝构造函数有三种情况: 1.一个对象作为函数参数,以值传递的方式传入函数体. 2.一个对象作为函数返回值,以值传递的方式从函数返回. 3.一个对象用于给另外一个对象进行初始化(复制初 ...

  4. Monitoring an IBM JVM with VisualVM

    Monitoring an IBM JVM with VisualVM 分类: Java 2013-06-09 16:15 250人阅读 评论(0) 收藏 举报 JDK6 update 7 and o ...

  5. 转: MySQL5.7 ERROR 1142 (42000)问题

    1,mysql全库导入报错 [root@dev_121_21 ~]# mysql--socket=/usr/local/mysql/mysql.sock --default-character-set ...

  6. Java并发编程的艺术(五)——中断

    什么是中断? 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作.因此,Java提供了一种用于停止线程的机制——中断. 中断只是一种协作机制,Java没有给中断增加任 ...

  7. 实用ExtJS教程100例-001:开天辟地的Hello World

    ExtJS功能繁多,要想彻底的了解确实很困难.作为初学者,如何能找到一条快速的通道呢?我觉得,如果你有Javascript的基础,那就不要惧怕ExtJS的复杂,从动手开始,遇到问题,解决问题,积累经验 ...

  8. Java语法糖初探(三)--变长参数

    变长参数概念 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用.形如 function(T …args).但是需要明 ...

  9. [转]通过查看mysql 配置参数、状态来优化你的mysql

    From : http://wangwei007.blog.51cto.com/68019/967278 mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status ...

  10. [转]11个在线编码大赛,与全球程序员PK

    From : http://news.cnblogs.com/n/187196/ 英文原文:10 Online Coding Contests For Programmers! 如果你拥有出色的编码技 ...