Qt学习笔记(一) 第一个Qt应用程序
2015-02-13 17:48
253 查看
使用QtCreator向导创建一个QtGui应用程序,会生成一个.pro工程定义文件和几个.h/.cpp源代码文件。
首先看工程定义文件的内容:
QT+=coregui
TARGET=firstQtApp
TEMPLATE=app
SOURCES+=main.cpp/
mainwindow.cpp
HEADERS+=mainwindow.h
QT+=表示需要加载的库模块。Core模块是每个Qt应用程序都需要的。因为这是一个Gui程序,所以加载了Gui模块。
TARGET=表示编译后可执行程序的名称。
TEMPLATE=表示应用程序的类型。这里是一个app程序。还可以是lib等。
SOURCES+=表示添加到工程里的源代码文件。
HEADERS+=表示添加到工程里的头文件。
再来看main.cpp里面的内容。这里面只有整个程序的主函数。代码如下:
这段代码是由QtCreator向导自动生成的。
第一步先创建了一个QApplication的对象。每个Qt应用程序都必须有一个QApplication的对象。这个对象代表的就是这个应用程序本身。而且每个应用程序只允许有一个QApplication的对象。构造函数需要两个参数,这是Qt对命令行参数的支持。
第二步创建了主窗口对象。窗口/窗口部件是UI中的可视化元素,叫做widget。这相当于windows中的控件和容器。
第三步调用w.show()使窗口可见。
最后调用a.exec()将程序控制权交给Qt,程序开始进入事件循环,等待用户操作。
再来看MainWindow里面的代码:
首先是类声明:
#include<QtGui/QMainWindow>
#include<QLabel>
#include<QPushButton>
classMainWindow:publicQMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget*parent=0);
~MainWindow();
//datamembers
private:
QLabel*label;
QPushButton*pushButton;
};
这个类继承自QMainWindow。由于定义了自己的信号和槽,所以在类的开头使用了Q_OBJECT宏。然后声明了两个窗口部件作为数据成员,QLabel和QPushButton。
类的实现代码:
#include"mainwindow.h"
#include<QVBoxLayout>
MainWindow::MainWindow(QWidget*parent)
:QMainWindow(parent)
{
label=newQLabel(tr("ThisismyfirstQtApplication"));
pushButton=newQPushButton(tr("Exit"));
QVBoxLayout*layout=newQVBoxLayout;
layout->addWidget(label);
layout->addWidget(pushButton);
connect(pushButton,SIGNAL(clicked()),
this,SLOT(close()));
QWidget*widget=newQWidget(this);
widget->setLayout(layout);
setCentralWidget(widget);
}
首先构造了两个窗口部件,使用布局管理中的QVBoxLayout(垂直布局),将两个部件添加到layout里面,从而布局这两个部件。然后将pushButton的clicked()信号和当前窗口的close()槽连接起来。当用户点下Button的时候,窗口的close()槽便会调用,从而关闭窗口。信号和槽有点类似于MFC中的消息映射。
然后使用一个widget来承载设置好的layout,最后将widget和窗口绑定。
首先看工程定义文件的内容:
QT+=coregui
TARGET=firstQtApp
TEMPLATE=app
SOURCES+=main.cpp/
mainwindow.cpp
HEADERS+=mainwindow.h
QT+=表示需要加载的库模块。Core模块是每个Qt应用程序都需要的。因为这是一个Gui程序,所以加载了Gui模块。
TARGET=表示编译后可执行程序的名称。
TEMPLATE=表示应用程序的类型。这里是一个app程序。还可以是lib等。
SOURCES+=表示添加到工程里的源代码文件。
HEADERS+=表示添加到工程里的头文件。
再来看main.cpp里面的内容。这里面只有整个程序的主函数。代码如下:
#include<QtGui/QApplication>
#include"mainwindow.h"
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
MainWindoww;
w.show();
returna.exec();
}
这段代码是由QtCreator向导自动生成的。
第一步先创建了一个QApplication的对象。每个Qt应用程序都必须有一个QApplication的对象。这个对象代表的就是这个应用程序本身。而且每个应用程序只允许有一个QApplication的对象。构造函数需要两个参数,这是Qt对命令行参数的支持。
第二步创建了主窗口对象。窗口/窗口部件是UI中的可视化元素,叫做widget。这相当于windows中的控件和容器。
第三步调用w.show()使窗口可见。
最后调用a.exec()将程序控制权交给Qt,程序开始进入事件循环,等待用户操作。
再来看MainWindow里面的代码:
首先是类声明:
#include<QtGui/QMainWindow>
#include<QLabel>
#include<QPushButton>
classMainWindow:publicQMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget*parent=0);
~MainWindow();
//datamembers
private:
QLabel*label;
QPushButton*pushButton;
};
这个类继承自QMainWindow。由于定义了自己的信号和槽,所以在类的开头使用了Q_OBJECT宏。然后声明了两个窗口部件作为数据成员,QLabel和QPushButton。
类的实现代码:
#include"mainwindow.h"
#include<QVBoxLayout>
MainWindow::MainWindow(QWidget*parent)
:QMainWindow(parent)
{
label=newQLabel(tr("ThisismyfirstQtApplication"));
pushButton=newQPushButton(tr("Exit"));
QVBoxLayout*layout=newQVBoxLayout;
layout->addWidget(label);
layout->addWidget(pushButton);
connect(pushButton,SIGNAL(clicked()),
this,SLOT(close()));
QWidget*widget=newQWidget(this);
widget->setLayout(layout);
setCentralWidget(widget);
}
首先构造了两个窗口部件,使用布局管理中的QVBoxLayout(垂直布局),将两个部件添加到layout里面,从而布局这两个部件。然后将pushButton的clicked()信号和当前窗口的close()槽连接起来。当用户点下Button的时候,窗口的close()槽便会调用,从而关闭窗口。信号和槽有点类似于MFC中的消息映射。
然后使用一个widget来承载设置好的layout,最后将widget和窗口绑定。
相关文章推荐
- Qt学习笔记(一) 第一个Qt应用程序
- qtopia-2.2.0 第一个 Qt 应用程序的 --- 开发流程--- x86下
- 自学Qt_2,第一个应用程序
- qtopia-2.2.0 第一个 Qt 应用程序的 --- 开发流程--- 移植到 TQ2440 开发板
- Qt.Enterprise.v3.3.2在windows下安装并编译第一个应用程序
- Spark第一个应用程序
- 创建第一个简单的Silverlight应用程序
- Ubuntu10.04下安装Qt4和创建第一个Qt程序
- 【Qt开发】设置Qt应用程序图标
- 开始使用您的第一个 Worklight 应用程序
- Qt开发应用程序Debug与Release设置 .
- Qt: 多文档应用程序源码解析及下载
- 精通 Grails: 构建您的第一个 Grails 应用程序(转自developmentwork 中国)
- QT5应用程序打包与发布
- 开始第一个Qt程序
- Qt在Linux环境下应用程序字体模糊的解决方法
- qt5.1+ vs2013+opencv2.4.8制作第一个图形界面
- Qt-GUI应用程序的按键框架
- 第一个springmvc应用程序_注解版
- [翻译]建立你的第一个Visual WebGui应用程序