Qt4读书笔记2

来源:互联网 发布:汽车电路图软件 编辑:程序博客网 时间:2024/05/19 20:47

第一章 GettingStarted

Hello Qt – 一个简单的程序

#include<QApplication>

#include <QLabel>

 

int main(int argc, char*argv[])

{

       QApplication app(argc, argv);

       QLabel *label = new QLabel("Hello Qt!");

       label->show();

       return app.exec();

}

 

QApplication类负责管理应用层的资源,argc,argv作为参数使得Qt支持一些命令行参数;

 

QLabel widget 用于显示"Hello Qt!". widget术语来自Unix,类似于windows的控件。按钮(Buttons),菜单(menus),滚动条(scroll bars)和主界面(frames)都是widget的例子。widget还可以包含其他widgets.例如一个application window一般包括一个QMenuBar,一些QToolBars,一个QStatusBar,和其他一些widget.许多应用使用QMainWindow或者QDialog作为application window, 但是Qt是如此灵活以至于任何widget都可以是一个window.在这个例子中,QLabel widget就是一个application window.

 

label->show();

使label变成可见的。控件(widgets)创建是是隐藏的,所以我们在显示前需要使其变成可见的,这样可以避免闪烁

 

return app.exec();

把控制交给Qt.从这一点,程序进入事件循环(event loop,类似windows的机制).循环接收用户的鼠标和键盘事件,并执行相应的程序。GUI应用与传统的批处理程序不同,批处理只是处理输入、产生输出,并自动终止。

为了简单,我们不操心调用deleteQLabel来释放内存。这个小的内存泄露是无害的,因为操作系统在程序终止时会回收内存。

 

要使这个程序运行,必须获取并安装 Qt4,安装步骤:

-------------------------------------------------------------------------------------------

首先从网上获取Qt的最新版本:

http://www.trolltech.com/download/

1. Lecensing注意

包括两个形式:开源和商用

2.安装Qt/Windows

当前的版本是qt-win-opensource-4.3.2-mingw.exe2009.01.22当前最新为4.4.3版本).下载并运行这个文件。

当安装的MinGW时,如果你已经有MinGW C++ compiler,你必须指出其目录。否则,按照MinGW. GLP VersionQt不能在VC下工作,所以必须安装MinGW.Qt's的例子会自动安装,并有相关文档。

 

安装完成后,你将有一个新的应用Qt by TrollteckV4.3.2(OpenSource).这个文件夹包括Qt AssistantQt Designer 和一个Qt 4.3.2的命令行,启动一个控制台窗口。启动这个窗口将配置Qt的编译环境。在这个窗口中可以运行qmakemake来构建Qt应用。

-------------------------------------------------------------------------------------------

 

bin目录增加到PATH

然后编译程序:examples/chap01/hello/hello.cpp

qmake -project

如果想创建平台独立的工程

qmake hello.pro

编译:

make

运行:

hello

 

-------------------------------------------------------------------------------------------

Qmake的使用

使用build工具构建Qt应用是一个及其简单的事情。有三个选项:qmake, 第三方build tool, IDE

本书将使用qmakeproject(.pro)文件来构建例子和插件。我们来研究一下.pro文件的语法。

.pro文件的目的是列出工程中包含的源文件。

工程文件中的三个主要类型是app(独立应用)lib(静态或者共享库)subdirs(递归构建),通过TEMPLATE来确定:

TEMPLATE = lib

 

如果是subdirstemplate,只需定义TEMPLATE= subdirs.在每个子目录,qmake会寻找.pro文件并构建工程。例如examples.pro文件使用的就是subdirs templates.

如果没有出现TEMPLATE,默认是app.对于applib工程,常用的变量包括:

--HEADERS: 标识.h文件

--SOURCES: 表示.cpp文件

--FORMS:表示 Qt Designer使用的.ui文件,uic处理

--RESOURCES: 表示.qrc文件,被rcc处理

--DEFINESC++预处理符号

--INCLUDEPATH: 工程的include目录

--LIBS:工程的链接库

--CONFIG: 工程配置和编译选项

--QT: 工程使用的Qt模块。缺省包括了coregui,对应QtCoreQtGui模块

--VERSION:目标库的版本

--TARGET: 可执行文件(或lib)的名字,不包括扩展名,前缀或者版本西南向。缺省在当前目录

--DESTDIR:执行文件放置的目录。缺省的地方是平台不同的,如linux在当前目录,windowsdebug/release目录

--DLLDESTDIR:目标libaray文件放置的位置

CONFIG变量用于控制build process,与如下选项:

--debug: 生成的执行文件有debug信息,使用Qtdebug version

--release:生成release版本

--warn_off:尽量少警告

--qt: 使用qt,缺省就是这样

--dll: a shared library被构建

--staticlib: 构建静态library

--plugin: 构建插件,插件必须是dll

--console: 应用需要写console(使用cout,cerr,qWarning())

--app_bundle:Mac OS支持

--lib_bundle:Mac OS支持

 

-------------------------------------------------------------------------------------------

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕了吐得厉害怎么办 玩网页游戏好卡怎么办 网页游戏占cpu高怎么办 微信有余额绑定其他名下怎么办 银行卡绑定支付余额不对怎么办 可乐机不制冷了怎么办 被淘宝卖家威胁怎么办 征信不好想贷款怎么办 急用钱征信不好怎么办 急用钱逾期不还怎么办 急用钱借款不还怎么办 做b超按压疼痛怎么办 做b超没有尿怎么办 b超憋不到尿怎么办 做b超前没有尿意怎么办 肝胆b超前喝水了怎么办 肝胆彩超喝水了怎么办 胆囊b超喝了水怎么办 系统b超照不到怎么办 思维彩超宝宝不动怎么办 怀孕七个月胎儿缺氧怎么办 怀孕29周小孩偏小怎么办 孕29周胎儿臀位怎么办 刚怀孕有囊肿该怎么办 食杏中毒怎么办吃什么 猫吃了扁桃仁怎么办 夏天来了??点狐臭怎么办? 我有一小点狐臭怎么办 淘客网站被微信屏蔽怎么办 微信老是屏蔽网站怎么办 华帝售后没人理怎么办 新开的网店没生意怎么办 淘小二介入买家举证不全怎么办 新股申购中签后钱不够怎么办 买的东西收不到怎么办? 拼多多按错收货怎么办 团购招生做到一半不如意怎么办 网购付款后卖家没有货怎么办 淘宝退货商家不同意退款怎么办 淘宝确认收货后卖家拒绝退款怎么办 淘宝卖家不同意退款怎么办