Qt4读书笔记2

第一章 Getting Started

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应用与传统的批处理程序不同,批处理只是处理输入、产生输出,并自动终止。

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

 

要使这个程序运行,必须获取并安装 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

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

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

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

TEMPLATE = lib

 

如果是subdirs template,只需定义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模块。缺省包括了core gui,对应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支持

 

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我没有找到关于"Qtcreate"的相关信息。请问您是指"Qt Creator"吗?Qt Creator是一个集成开发环境(IDE),用于开发Qt应用程序。它支持多种平台,包括iOS、Android和WinRT。通过Qt Creator,您可以编写和调试代码,并使用Qt的字符串类,如QString和QByteArray,来处理字符串。QString是Qt最常用的字符串类,而QByteArray适用于处理以'\0'结尾的传统字符串。QByteArray可以处理多字节编码的字符串,如UTF-8、GBK和Big5。在使用QByteArray时,程序员需要确定所使用的字符串编码格式。此外,QByteArray还使用了隐式共享机制来提高运行效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Qt Create 笔记 (一) 1.QString 2.QByteArray](https://blog.csdn.net/linbounconstraint/article/details/51497782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Game Programming Using QT(PACKT,2016)](https://download.csdn.net/download/vanridin/9431499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值