Qt_day01

1.1 Qt简介:

  Qt是一个跨平台C++图形用户界面应用程序框架开发库主要用来开发图形用户界面(Graphical User Interface,GUI)程序
  Qt作为前端图形界面的表现;C++作为后端代码编程的表现

Qt的发展史
  1991年 Qt最早由奇趣科技开发
  1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
(Linux两种主流图形命令界面KDE、GNOME)
  2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
  2012年 Qt又被Digia公司收购
  2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。
  当前Qt最新版本为 5.5.0

                 

 

 

1.2 Qt框架

  创建一个Qt项目:
    打开Qt Creator界面——选择 New Project——选择Qt Widgets Application——添加一个继承自CMainWindow的类
    QMainWindow   主窗口
    
QWidget       小部件 (一般都用这个Qwidget   这是一个基类  其他的都由这个衍生)
    QDialog      对话框

 

 

1.3 项目文件

 .pro —— 项目工程文件(应用程序文件)
    qmake自动生成的用于生产makefile的配置文件

复制代码
QT       += core gui       //模块的名字 core gui (核心界面编程) 程序
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  //限定说明程序主版本大于版本4

TARGET = 01_QtTest     //应用程序名/项目名
TEMPLATE = app         //生成的makefile的模板类型

DEFINES += QT_DEPRECATED_WARNINGS  //定义编译选项,标记警告项

CONFIG += c++11   //配置支持C++的版本11

//sources  源文件配置参数
SOURCES += \                
        main.cpp \
        mywidget.cpp
//headers  头文件配置参数
HEADERS += \
        mywidget.h
//forms   窗口设计文件
FORMS    += mywidget.ui

qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

/***
*  1、程序核心编程gui QT += core gui
*  2、现行声明程序主版本大于版本4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
*  3、项目名 模板类型
*  4、定义编译选项,标记警告项
*  5、配置支持C++版本11
*  6、源文件、头文件、ui文件配置
*/
复制代码

 

 Headers / 
  
mywidget.h  

复制代码
#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

class MyWidget : public QWidget  //MyWidget类公有继承于QWidget类
{
    Q_OBJECT //信号与槽相关

public:
    MyWidget(QWidget *parent = 0);  //构造函数
    ~MyWidget();                    //析构函数
};
#endif // MYWIDGET_H
复制代码

 

sources /
  main.cpp

复制代码
#include "mywidget.h"
//头文件和类名一样
#include <QApplication>     //应用程序类
//Qt头文件没有.h   前两个字母大写

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);                 //1-定义应用程序对象a
    //定义一个应用程序对象a  (有且只有一个)


    MyWidget w;                                 //2-定义一个窗口对象w
    //MyWidget继承于QWidget类,QWidget是一个窗口基类
    //所以MyWidget也是一个窗口类
    //w就是一个窗口对象,这里的就是部件窗口

    w.show();                                  //3-手动显示窗口
    //窗口常见是需要认为显示的,使用show函数实现


    return a.exec();
    //让程序一直执行,等待用户操作
    //等待事件发生,没有这一句程序会导致应用程序对象a运行一闪而过
    //return a.exec();  相当于
        /**
             a.exec();     //让程序持续不停止运行
             return 0;     //当触发操作停止时返回值给对应部件
        */
}
复制代码

  mywidget.cpp

复制代码
#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
}

MyWidget::~MyWidget()
{

}
复制代码

 

Qt 功能模块:

 

 

1.4 第一个Qt程序

复制代码
.pro
QT += widgets
SOURCES += \
    main.cpp

main.cpp
#include <QApplication>
#include <QWidget>
int main(int argc, char **argv)
{
    QApplication APP(argc,argv);
    QWidget w;
    w.setWindowTitle("hello world!");   //设定标题 setWindowTitle();

    w.show();
    return APP.exec();

}
复制代码

 

 

 

1.5 父窗口和子窗口的区别(控件、部件、构件)

            控件:(窗口标题)  setWindowTitle();
  <QPushButton>     控件:(按钮) QPushButton b;        (控件显示)b.setText();      

    创建控件默认是隐藏的,需要使用show();人为显示出来
  如果不指定父对象,窗口和窗口之间没有关系,相互独立!(不是我们想要的)
  a指定b为它的父对象,a放在b的上面
    指定父对象,有2种方式: 1、b.setParent(&w)          //setParent函数,&w是父对象地址,是子对象
                  2、QPushButton b1(&w)         //通过构造函数传参
    指定父对象,只需要父对象显示,上面的子对象自动显示

  一般大的窗口为父对象,小的控件叫子对象

 

 

1.6 信号和槽

  信号和槽就是让控件和对应的活动关联起来;

 

 

1.7 坐标系统

1.8 内存回收机制 (new、delete)

1.9 带菜单栏的窗口

1.10 对话框

posted @   尘落曦枫  阅读(144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示