2012年(46)
分类: C/C++
2012-04-30 12:18:31
摘自:http://www.cnblogs.com/rophie/archive/2012/04/02/2429877.html
在上节中说道,Qt Creator自动为我们生成了四个文件,分别是:一个.pro文件,两个.cpp和一个.h 接下来我们就来分析一下这几个文件。
首先打开HelloWorld.pro文件
QT += core gui
TARGET = HelloWorld
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
QT缺省使用了core和gui库
变量TARGET描述了目标文件的名称,即生成的应用程序的名字,默认采用工程文件所在的文件夹名字。
变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件,有以下5种模板:
应用程序 app,为建立一个Qt应用程序创建模板Makefile文件库 lib,为建立应用程序库创建模板Makefile文件
子工程 subdirs,为建立子目录下的目标文件创建模板Makefile文件,子目录通过变量subdirs指定(子目录下的工程文件也需要指出使用何种模板)
VC应用程序vcapp,为Visual Studio 生成一个应用程序工程,仅仅用于Windos操作系统
VC库vclib,为Visual Studio生成一个应用程序库工程,仅仅用语Windows操作系统
SOURCES - 应用程序中的所有源文件的列表。
HEADERS - 应用程序中的所有头文件的列表。
接下来就是mainwindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui/QMainWindow>
5
6 class MainWindow : public QMainWindow
7 {
8 Q_OBJECT
9
10 public:
11 MainWindow(QWidget *parent = 0);
12 ~MainWindow();
13 };
14
15 #endif // MAINWINDOW_H
第1、2两行,大家都是懂得C++的啊,所以什么#ifndef,#define和#endif的含义和用途就不再赘述了。
接着类MainWindow继承了QMainWindow类,QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。
标题栏下面一些是Menu Bar,用于显示菜单;再下面一点是Toolbars,用于显示工具条,注意,Qt的主窗口支持多个工具条显示,你可以把几个工具条并排显示在这里,就像Word2003一样;工具条下面是Dock Widgets,这是停靠窗口的显示区域,所谓停靠窗口就是像Photoshop的工具箱一样,可以在主窗口的四周显示;再向下是Status Bar,就是状态栏;中间最大的Central widget就是主要的工作区了。
下面是一个重要的东西:Q_OBJECT。这是一个宏,只有加入了Q_OBJECT,你才能使用QT中的signal和slot机制,暂时先不深入研究。
接下来的就是MainWindow的构造函数和析构函数,mainwindow.cpp文件中具体实现。
大致了解了之后,我们来新建一个工程,这次来勾选创建界面选项,完成之后我们会发现在项目视图中多了个界面文件mainwindow.ui,我们双击这个文件打开。
你发现了什么?对,可视化界面,直接编译运行会出现一个窗口。
接下来我们从左边的工具箱中拖一个Label控件到窗口上并双击将它重命名为“Hello World”
编译运行,达到了上节我们用代码写出来的HelloWorld效果。
我们查看一下mainwindow.h中声明了一个UI文件: Ui::MainWindow*ui,并在MainWindow的构造函数中将此ui文件布局赋给了当前窗口:ui->setupUi(this);
我们接下来在MainWindow的构造函数中加入ui->label->setText("Hello Qt");就可以改变Label的当前的文字。
好了,这一节先说到这里,感觉自己写的很乱,呵呵,第一次写这种技术博客,语言组织的不太好,凑合着看吧,呵呵。
下节预告:《QT 的信号与槽机制》
作者:荒 木
出处:http://rophie.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。