QT 4.2.2的安装(安装完还要再编译,注意设置Windows Path)
(安装篇)
前奏:
提到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)的更多相关文章
- 最小化安装的centos7.5上编译安装git2.19
VMware Workstation已经采用最小化安装CentOS7,显示版本为CentOS7.5,准备采用yum安装git. 采用yum list git发现可安装的GIT软件包版本1.8.3.1, ...
- qt超强绘图控件qwt - 安装及配置
qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...
- Qt on Android: Android SDK安装
之前我在 <Windows下Qt 5.2 for Android开发入门>一文中介绍了 Windows 下 Qt on Android 开发环境的搭建,略过了 Android SDK 的安 ...
- Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)
一.为什么要静态编译 用QtCreator编译程序时,使用的是动态编译.编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件.如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程 ...
- paper 139:qt超强绘图控件qwt - 安装及配置
qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...
- 安装部署完office web apps 后,无法浏览Word
安装部署完office web apps 后,在sharepoint 2010浏览器中浏览Word提示:“由于出现意外错误,Word Web App 无法打开此 文档 进行查看. 要查看此 文档,请在 ...
- QT程序制作deb包并安装在应用程序菜单
制作原理:打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再编译)安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst脚本)卸载 ...
- Qt Chart 5.7.0 傻瓜安装教程
前提 qtchart 里的README文件(注意红色标记处)(本人翻译不行.多多见谅,也可以在评论里纠正( ⊙ o ⊙ )) --------------- Qt Charts 5.7.0 ----- ...
- Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题
Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题,如:除png外的其它类型的图片,如:jpg.ico.bmp等,还有中文乱码等问题,出现这些问题的本质是Qt对这类文件格式或编码格式的支持方式 ...
随机推荐
- Linux下Nginx+tomcat应用系统性能优化
软件环境及服务器配置如下: Linux rh6.3,Tomcat7.0.29,Nginx1.2.7 mysql5.1,jdk1.6.0 mysql5.1 memcached 1.4.15 Xeno 2 ...
- 一天一个类,一点也不累之HashSet
最近忙着一个小项目结题,故没能按时完成[一天一个类,一点也不累],还好项目优秀,算是对自己一点点的安慰和鼓励.~~~ 今天要说的是HashSet 既然是继承自Set,那么就必须有Set的一些属性,比如 ...
- 演练5-6:Contoso大学校园管理系统6
在上一次的教程中,我们处理了关联数据问题.这个教程演示如何处理并发问题.你将使用Department实体创建一个页面,这个页面在支持编辑和删除的同时,还可以处理并发错误.下面的截图演示了Index页面 ...
- android内存的一点优化
android手机给应用分配的内存通常是8兆左右,如果处理内存处理不当很容易造成OutOfMemoryError,我们的产品出现最多的错误也是OutOfMemoryError的异常, 在解决这个异常时 ...
- 基于visual Studio2013解决C语言竞赛题之1047百马问题
题目 解决代码及点评 /* 47.马百瓦问题.有100匹马,100块瓦,大马驮3块, 小马驮2块,两个马驹驮1块.问大马.小马.马驹各多少? 要求:① 不许用for循环; ② 循环次数 ...
- [Boost基础]并发编程——asio网络库——异步socket处理
异步服务器端 #include <conio.h> #include <iostream> using namespace std; #include <boost/as ...
- Swift - 判断设备方向(或监听设备方向的改变)
通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向. 同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面. 下面通过 ...
- form里两个submit按钮,在onsubmit中判断哪个被点
记下别人的解决方法(有效): 方法1:(已验证过) <form name="form1" onsubmit="show()"> ..... < ...
- Oracle Data Guard 创建物理Standby数据库
创建物理备库 机器名 a1 a2 IP: 192 ...
- Coreseek:第二步建索引及測试
1,建索引非常easy.一行代码 g:/service/coreseek/bin/indexer -c g:/service/coreseek/etc/csft_mysql.conf person ...