(安装篇)
前奏:

提到C++的GUI Framework估计大多数人都会想到MFC、VCL,因为在十年前的COM时代,这两个大家伙几乎垄断了整个C++ windows平台上应用程序的开发市场, 但是最近几年,随着.NET framework的推出。使得MFC这样原本就非常丑陋,麻烦的framework开始风光不再了,我也学过几天的MFC,那种宏作为消息满天飞的编程风格让我很快就放弃了,几次和朋友的交流中,我们都认为C++其实不太适合做GUI程序,但是我必须面对一个问题:当我需要用C++写个GUI程序的时候,我该用什么?我一直非常犹豫,很显然,我不太愿意用MFC,我也不太愿意为了VCL再去学一个IDE的用法,而且我不得不用C++写GUI的时候往往是在非windows平台上,显然上面两个framework就更不符合这个要求了。经过了一番调查,我最终选择了Qt这个库,于是也打算在这个blog上开一个学习手记系列。

下载:

好了,现在先让我们搭建工作环境,讲述Linux上的Qt环境设置的文章网上很多,我这里不想再累述了,有兴趣的人可以google之。我下面谈在windows下的安装和设置:首先,我们都知道,Qt这样的开源产品和GCC编译器的密切关系,所以首先我们必须有MinGW环境,那么第一步,就必须先安装MinGW,我这里推荐一个IDE,dev-cpp,他是基于MinGW的一款C++ IDE,自带了MinGW,集成了gcc、g++、gdb等工具,非常有用。下载地址如下:
http://www.bloodshed.net/devcpp.htm

接着,我们需要下载Qt了,熟悉开源产品的朋友都知道,这种产品通常有两种安装方式:第一,源码安装,这个下载后,在命令行(shell)进行本地编译即可,这个在Linux下安装软件是非常常见的;第二,是二进制安装,通常有自带的GUI界面的图形安装想到,在windows下通常是这种安装方式,其实那种安装方式和操作系统没什么必然的联系,只是一种习惯而已,既然我们是在windows下,那么就入乡还俗,用第二种方式,我们需要下载Qt的Runtime for MinGW包,地址如下:
http://www.trolltech.com/

安装:

下载之后,你会得到一个qt-win-opensource-4.2.2-mingw.exe文件,双击后启动安装程序,和通常安装windows程序一样基本上只要一路next即可,只有一个地方要特别注意,就是他会问你MinGW的路径,你如果安装的就是MinGW,那么就写X:/MinGW(X是你安装MinGW所在的目录),如果你安装的是dev-c++就写你安装他所在的目录,如下图所示:

当然你也可以选择这个时候在线安装MinGW,可是这样就取决于网络状况了(这里是直接连接国外的服务器的,一般会很慢,经常断线),这里不鼓励使用。最后,等向导完成后,你会发现你的开始菜单里多出一项Qt by Trolltech v4.2.2 (OpenSource)菜单项,到这里还没最终完事,因为Qt没还没建立debug库,会导致在安装目录之外你不能运行Qt程序,因此展开该菜单项,选择Qt 4.2.2 (Build Debug Libraries),就会自动编译debug库,编译时间很长,需要耐心等待,不熟悉源码安装的方式朋友们也可以体验下源码安装的感觉(一条条命令往上飞,彷佛穿越了时空,-_-b)……

设置:

虽然,qt自带了命令行环境(Qt 4.2.2 Command Prompt),但是我们可能还是希望把环境变量全局化,因此我们可以右击"我的电脑->属性->高级->环境变量->系统变量的path"值后面加上下面三个路径:
X:/Dev-Cpp/bin
X:/Dev-Cpp/mingw32/bin
X:/Qt/4.2.2/bin
目录之间用";"分割,至此环境搭建完成。

检验安装:

Qt自带了很多DOME。我们可以在X:/Qt/4.2.2/examples/下找到,例如我们可以用命令行环境进入到X:/Qt/4.2.2/examples/tutorial/t1目录下,然后运行qmake命令编译该程序DOME,如果安装没问题,会在该目录下的relese目录下找到Qt版的Hello World程序,如下图所示:

(入门篇)

按 照习惯,学习一个库,一般从写一个Hello World程序开始,在上篇中我们已经在库的安装目录里看到了这样的例子,但是那个例子只有一个button,过于简单了,甚至不能算是一个完整的窗体程 序,为了比较深切的体会Qt编程的方式和思想,我们有必要自己写一个相对比较复杂的Hello程序,我们的程序里应该有一个面板里面放置两个控件(一个无 事件控件,和一个有事件控件)来组成我们的程序,对于一个事件驱动的程序来说,这样体验才算是比较完整的,ok,首先,我们可以在上一个程序的基础上进行 扩展,qt的类名字都很直观,使得我们不需要借助手册,就可以猜到一些控件的类名(真的不知道可以打开Assistant查询), 于是一个程序转眼便敲入了,
编码:

代码如下:
#include <QApplication.h>
#include <QLabel.h>
#include <QWidget>
#include <QFont>
#include <QPushButton.h>
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QWidget winform; //作为一个主窗体
QLabel label("<h1 style='color:blue'>Hello, QT</h1>",
&winform); // Label 显示hello信息
QPushButton button("OK", &winform); // 退出窗体按钮
winform.resize(200,150); //设置大小
label.resize(200,100);
button.setGeometry(10, 100, 150, 40);
button.setFont(QFont("宋体",10, QFont::Bold)); //设置字体
label.setAlignment(Qt::AlignCenter);
// 设置事件关联
QObject::connect(&button, SIGNAL(clicked()), &app, SLOT(quit()));
winform.show();
return app.exec();
}
这里大概只有几点需要说明:
1。这里的头文件和所用的类几乎是一一对应的,因此很容易理解。
2。任何一个Qt程序都得从一个叫QApplication的类对象开始,他引入来自入口函数main的参数,返回成员函数exec()的运行结果。
3。可以用于面板的控件有很多,就我们这样的需求,一个QWidget足够了。
4。QObject::connect(&button, SIGNAL(clicked()), &app, SLOT(quit()));这句代码确定了button控件需要响应的单击(click)事件和事件的处理函数(quit())的关联。

编译:

OK, 编码完成,保存为一个cpp文件(比如Qhello.cpp)到一个临时目录下(比如E:/tmp/),然后打开我们的命令行环境,进入这个临时目录,首 先,要建立一个Qt工程文件,输入命令qmake -project 回车后我们得到一个名叫qt.pro的工程文件,接着我们要建立makefile文件(这个文件会设定好每一个编译选项,以方便我们后来的编译),继续输 入命令qmake,这样我们就在该目录下看到了三个makefile文件:
Makefile.Debug:编译Debug版(即带Debug信息的版本,一般用于测试和调试)的编译选项。
Makefile.Release:编译Release版(即不带Debug信息的版本,一般用于产品的发布)的编译选项。
Makefile :上面两个文件的总聚合器,他用于直接响应make命令。
最 后在命令行里输入make命令,编译该工程,该工程默认生成的是Debug版程序,你可以在debug子目录下找到,如果需要更改源码,改完后,重新 make就可以了,如果没有加入新文件,无需更改makefile和工程文件。如果确定可以发布,可以输入make release命令来生成Release版本(在Release子目录下)。

http://blog.csdn.net/henreash/article/details/3541311

QT 4.2.2的安装(安装完还要再编译,注意设置Windows Path)的更多相关文章

  1. 最小化安装的centos7.5上编译安装git2.19

    VMware Workstation已经采用最小化安装CentOS7,显示版本为CentOS7.5,准备采用yum安装git. 采用yum list git发现可安装的GIT软件包版本1.8.3.1, ...

  2. qt超强绘图控件qwt - 安装及配置

    qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...

  3. Qt on Android: Android SDK安装

    之前我在 <Windows下Qt 5.2 for Android开发入门>一文中介绍了 Windows 下 Qt on Android 开发环境的搭建,略过了 Android SDK 的安 ...

  4. Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)

    一.为什么要静态编译 用QtCreator编译程序时,使用的是动态编译.编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件.如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程 ...

  5. paper 139:qt超强绘图控件qwt - 安装及配置

    qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...

  6. 安装部署完office web apps 后,无法浏览Word

    安装部署完office web apps 后,在sharepoint 2010浏览器中浏览Word提示:“由于出现意外错误,Word Web App 无法打开此 文档 进行查看. 要查看此 文档,请在 ...

  7. QT程序制作deb包并安装在应用程序菜单

    制作原理:打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再编译)安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst脚本)卸载 ...

  8. Qt Chart 5.7.0 傻瓜安装教程

    前提 qtchart 里的README文件(注意红色标记处)(本人翻译不行.多多见谅,也可以在评论里纠正( ⊙ o ⊙ )) --------------- Qt Charts 5.7.0 ----- ...

  9. Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题

    Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题,如:除png外的其它类型的图片,如:jpg.ico.bmp等,还有中文乱码等问题,出现这些问题的本质是Qt对这类文件格式或编码格式的支持方式 ...

随机推荐

  1. android 图片尺寸 资料

  2. 一步一步重写 CodeIgniter 框架 (3) —— 用面向对象重构代码

    前面两篇文章为了重点突出 CodeIgniter 框架的原理,程序的结构很乱,有很多全局变量,在这一课中我们采用面向对象的方法对原先代码进行重构. 到目前为止,程序主要完成的就是 URL 分析,并根据 ...

  3. android圆形进度条ProgressBar颜色设置

    花样android Progressbar http://www.eoeandroid.com/thread-1081-1-1.html http://www.cnblogs.com/xirihanl ...

  4. 终于懂了:Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了(有了这个,就有了主动)

    Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了,跟Windows消息虽然尽量保持一致,但其实相互没有特别大的关系.有了这个,就有了主动,带不带句柄完全看需要. 比如这个结构就带句 ...

  5. WCF技术剖析之二十一: WCF基本的异常处理模式[上篇]

    原文:WCF技术剖析之二十一: WCF基本的异常处理模式[上篇] 由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂.同时,WCF设计的一个目 ...

  6. HDU 4544 湫湫系列故事――消灭兔子

    HDU 4544 Tags: 数据结构,贪心 Analysis: 将兔子的血量从大到小排序,将箭的杀伤力从大到小排序,对于每一个兔子血量, 将比他大的杀伤力大的剑压入优先队列,优先队列自己重写,让它每 ...

  7. Tesseract Ocr引擎

    Tesseract Ocr引擎 1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/t ...

  8. GoldentGate Oracle to Oracle 初始化具体解释

    一.安装GoldenGate[源端,目标端] 1.创建ogg文件夹 [root@source ~]# mkdir /DBSoft/ogg [root@source ~]# cd /DBSoft/ogg ...

  9. 解决Java compiler level does not match the version of the installed Java project facet.问题

    其实之前遇到过Java compiler level does not match the version of the installed Java project facet.这个问题,因为当时没 ...

  10. 《C++语言基础》实践參考——数组作数据成员

    返回:贺老师课程教学链接 [项目5 - 数组作数据成员]阅读教材P255例8.4.注意到类中的数据成员能够是数组.设计一个工资类(Salary),当中类的数据成员例如以下: class Salary ...