Qt_day01

目录

1.Qt简介 

2.Qt项目创建

3.QPushButton按钮

4.Qt中的对象树

5.Qt中的坐标系

6.Qt中信号和槽基本使用

7.自定义信号和槽

8.信号和槽拓展

9.Qt4版本信号和槽写法

10.Lambda表达式


1.Qt简介 

1.1 发展史:1991 奇趣科技

1.2 版本

     1.2.1 商业版

     1.2.1 开源版

1.3 优点:跨平台、接口简单,容易上手、一定程度上简化了内存回收机制

1.4 成功案例

     1.4.1 WPS

     1.4.2 谷歌地图

·    1.4.3 虚拟机软件

        ......

2.Qt项目创建

2.1 项目名称:不能有空格和中文

2.2 项目路径:不能有中文路径

2.3 创建窗口三大基类

     2.3.1 QWidget

     2.3.2 QMainWindow

     2.3.3 QDialog

2.4  Main函数中

#include "widget.h"
#include <QApplication> 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//应用程序对象  在Qt中 有且仅有一个
    Widget w; //窗口对象
    w.show(); //函数显示窗口

    return a.exec(); //进入消息循环机制,阻塞功能
}

2.5  .pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2018-08-06T09:29:47
#
#-------------------------------------------------

QT       += core gui  //Qt包含的模块

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  //大于4版本加入widgets模块 

TARGET = 01_QtFirst  //生成.exe程序的名称
TEMPLATE = app  //模板 应用程序模板


SOURCES += main.cpp\  //源文件
        mywidget.cpp \
    mypushbutton.cpp

HEADERS  += mywidget.h \ //头文件
    mypushbutton.h

3.QPushButton按钮

3.1 QPushButton * btn = new QPushButton;  //创建按钮对象

3.2 btn - >setParent(this) ;//设置父亲

3.3 btn - >setTect("按钮"); //设置显示文本

// 3.1、3.2、3.3等价于QPushButton * btn = new QPushButton("按钮",this);

3.4 btn - >setTect(200,200);  //移动

3.5 btn - >resize(400,200);  //重置窗口大小

3.6 btn - >setFixedSize(400,200);  //设置固定窗口大小

3.7 btn - >setWindowTitle("标题");  //设置窗口标题

4.Qt中的对象树

4.1 优点:一定程度上简化了内存回收机制

4.2 当创建的对象 指定的父亲是由QObject或者Object派生的类时候,这个对象被加载到对象树上,当窗口关闭掉时候,树上的对象也都会被释放掉

5.Qt中的坐标系

5.1 x以右侧为正 

5.2 y以下侧为正

5.3 左上角是 0,0点

6.Qt中信号和槽基本使用

6.1 connect(sender, signal, receiver, slot);

  • sender:发出信号的对象
  • signal:发出信号的对象发出的信号
  • receiver:接收信号的对象
  • slot:接收信号的对象在接收到信号之后所需要调用的函数

6.2  需求:点击按钮关闭窗口

6.3  连接  connect ( 信号的发送者,发送的信号,信号的接受者,处理的槽函数);

6.4  实现  connect( myBtn , &MyPushButton::clicked ,this, &MyWidget::close);

 按钮的信号

按钮是点击  clicked

其他是触发  triggered     点击新建,创建对话框等

7.自定义信号和槽

7.1  自定义信号 写在  signals下

        7.1.1  返回值是void

        7.1.2  只需要声明 不需要实现

        7.1.3  可以有参数  可以发生重载

7.2   自定义槽函数 写在 public 或者全局函数 pu或者 blic slot 或者lambda

        7.2.1  返回值是void

        7.2.2  需要声明 也需要实现

        7.2.3  可以有参数  可以发生重载 

7.3   当信号和槽发生重载时候,需要利用函数指针明确指出函数地址

        例:void(Teacher:: *teacherSignal)(QString) = &Teacher::hungry;

7.4  将QString 转为 char *

        7.4.1  .toUtf8()转为  QByteArray数据类型

        7.4.2  .data() 转为 char * 类型

8.信号和槽拓展

8.1  信号是可以连接信号   

       例:connect(btn,&QPushButton::clicked,zt,teacherSignal2);

8.2  可以用disconnect断开信号和槽

       例:disconnect(zt,teacherSignal2, st,studentSlot2);

8.3  一个信号可以响应多个槽函数

8.4  多个信号可以连接同一个槽函数

8.5  信号和槽函数的参数类型 必须一一对应,信号的参数个数 可以多余槽函数的参数个数,反之不可以 , 参数类型要一一对应

9.Qt4版本信号和槽写法

9.1  优势 :参数直观

9.2  劣势 :参数类型不做匹配检测

9.3  Qt4本质   SIGNAL("hungry(int)")SLOT("treat(QString)");

10.Lambda表达式

10.1  []()mutable  -> type {}组成

10.2  []中可以加 =  &  a  &a … 推荐 使用 =

10.3  () 形参列表

10.4  实现体

10.5  mutable可以修改按值传递进来的拷贝

10.6  -> type 代表lambda表达式返回值类型

day01  over!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜回.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值