Qt学习笔记(一) 第一个Qt应用程序

原创 2011年01月10日 21:53:00

使用Qt Creator向导创建一个QtGui应用程序,会生成一个.pro工程定义文件和几个.h/.cpp源代码文件。

 

首先看工程定义文件的内容:

QT       += core gui

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"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

 

这段代码是由Qt Creator向导自动生成的。

第一步先创建了一个QApplication的对象。每个Qt 应用程序都必须有一个QApplication的对象。这个对象代表的就是这个应用程序本身。而且每个应用程序只允许有一个QApplication的对象。构造函数需要两个参数,这是Qt对命令行参数的支持。

第二步创建了主窗口对象。窗口/窗口部件是UI中的可视化元素,叫做widget。这相当于windows中的控件和容器。

第三步调用w.show()使窗口可见。

最后调用a.exec()将程序控制权交给Qt,程序开始进入事件循环,等待用户操作。

 

再来看MainWindow里面的代码:

首先是类声明:

#include <QtGui/QMainWindow>

#include <QLabel>

#include <QPushButton>

 

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

    MainWindow(QWidget *parent = 0);

    ~MainWindow();

    // data members

private:

    QLabel *label;

    QPushButton *pushButton;

};

这个类继承自QMainWindow。由于定义了自己的信号和槽,所以在类的开头使用了Q_OBJECT宏。然后声明了两个窗口部件作为数据成员,QLabelQPushButton

类的实现代码:

#include "mainwindow.h"

#include <QVBoxLayout>

 

MainWindow::MainWindow(QWidget *parent)

    : QMainWindow(parent)

{

    label = new QLabel(tr("This is my first Qt Application"));

pushButton = new QPushButton(tr("Exit"));

 

    QVBoxLayout *layout = new QVBoxLayout;

    layout->addWidget(label);

    layout->addWidget(pushButton);

    connect(pushButton, SIGNAL(clicked()),

            this, SLOT(close()));

 

    QWidget *widget = new QWidget(this);

    widget->setLayout(layout);

    setCentralWidget(widget);

}

 

首先构造了两个窗口部件,使用布局管理中的QVBoxLayout(垂直布局),将两个部件添加到layout里面,从而布局这两个部件。然后将pushButtonclicked()信号和当前窗口的close()槽连接起来。当用户点下Button的时候,窗口的close()槽便会调用,从而关闭窗口。信号和槽有点类似于MFC中的消息映射。

然后使用一个widget来承载设置好的layout,最后将widget和窗口绑定。

 

Qt学习笔记(一) 第一个Qt应用程序

使用Qt Creator向导创建一个QtGui应用程序,会生成一个.pro工程定义文件和几个.h/.cpp源代码文件。   首先看工程定义文件的内容: QT       += core gui ...

qtopia-2.2.0 第一个 Qt 应用程序的 --- 开发流程--- 移植到 TQ2440 开发板

复制 x86 下制作好的工程: 将 上一博客制作好的 first / 目录 复制到 /opt/EmbedSky/Qte/arm-qtopia-2.2.0/pro/ 目录 下. 重新打开一终...

Tkinter 学习笔记 —— 第一个应用程序

Tkinter 学习笔记 —— 第一个应用程序本笔记基于 Tkinter 8.5 reference: a GUI for PythonA minimal application下面是一个只包含退出(...
  • And_w
  • And_w
  • 2017年06月25日 19:54
  • 257

IOS学习笔记(一)之安装开发环境与工具与第一个IOS应用程序

IOS学习(一)之安装开发环境与工具与第一个IOS应用程序(博客地址:http://blog.csdn.net/developer_jiangqq)         auther:hmjiangqq ...

Struts1学习笔记(2)-----第一个应用程序HelloWorld

似乎大多数程序的第一个入门程序都是以HelloWorld拉开序幕,本人学习也不例外,因此也以HelloWorld开始。但是本人并不打算在这一篇里讲叙原理,只是将第一个程序给调试出来了,在此过程中,你可...

Struts2学习笔记02----第一个struts2应用程序

开发环境:win7+Tomcat7+MyEclipse8.6 项目框架如图:

android学习笔记(2)---第一个Android应用程序的创建、修改、打包、卸载等常用操作

上节已经把Android的开发环境给搭建起来了,这一节就开始创建一个Android的应用程序小试牛刀吧。       Android的模拟器默认的语言是英语,对于没有接触过Android的人...

Android学习笔记三:第一个应用程序的扩充

之前我们看到的第一个应用程序都是系统为我们自动创建的,那么现在来看看如何对这个程序进行一些简单的扩充。     从之前的说明中可以看到,Activity程序完成界面的显示,那么就一定会使用到布局文件...

Spring Boot学习笔记-开发第一个应用程序

Spring Boot学习笔记

Android入门学习笔记(三):第一个Android应用程序

Android学习笔记(三):第一个Android应用程序 . 创建一个Android应用程序的步骤 1. 创建project :在Package Explorer 右键 >New...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt学习笔记(一) 第一个Qt应用程序
举报原因:
原因补充:

(最多只允许输入30个字)