• C++ Qt 03:MainWindow和Qt Gui编程


    C++ Qt 03:MainWindow和Qt Gui编程

    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  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 的信号与槽机制》

  • 相关阅读:
    Zabbix监控系统系列之二 : 初始化配置
    docker中的zabbix 配置钉钉机器人
    sqldbx 绿色小巧的数据库查询管理工具
    Windows 10 自建Anki 私有云服务器
    Sqlserver内存管理:限制最大占用内存
    tfs强制撤销其他工作区挂起更改,删除工作区
    easyui的一些文档
    IIS下日志分析
    zookeeper-client
    Windbg程序调试系列-索引篇(转)
  • 原文地址:https://www.cnblogs.com/lexus/p/2430691.html
Copyright © 2020-2023  润新知