QT使用简介1

0. QT快捷键

在这里插入图片描述

1. Qt简介

  • 1.1 跨平台图形界面引擎
  • 1.2 历史
    • 1.2.1 1991 奇趣科技
  • 1.3 优点
    • 1.3.1 跨平台
    • 1.3.2 接口简单,容易上手
    • 1.3.3一定程度上简化了内存回收
  • 1.4 版本
    • 1.4.1 商业版
    • 1.4.2 开源版
  • 1.5 成功案例
    • 1.5.1 Linux桌面环境 KDE
    • 1.5.2 谷歌地图
    • 1.5.3 VLC多媒体播放器

2. 创建第一个Qt程序

  • 2.1 点击Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项创建项目后,选择项目路径以及 给项目起名称
  • 2.2 名称 - 不能有中文 不能有空格
  • 2.3 路径 - 不能有中文路径
  • 2.4 默认创建有窗口类,myWidget,
    • 基类有三种选择: QWidget (类似于空窗口)、QMainWindow、QDialog(对话框)
  • 2.5 main函数
    • 2.5.1 QApplication a 应用程序对象,有且仅有一个
    • 2.5.2 myWidget w;实例化窗口对象
    • 2.5.3 w.show()调用show函数 显示窗口
    • 2.5.4 return a.exec() 让应用程序对象进入消息循环机制中,代码阻塞到当前行

3. QPushButton创建

按钮控件常用API:

  • 3.1 创建 QPushButton * btn = new QPushButton
  • 3.2 设置父亲 setParent(this)
  • 3.3 设置文本 setText(“文字”)
  • 3.4 设置位置 move(宽,高)
  • 3.5 重新指定窗口大小 resize
  • 3.6 设置窗口标题 setWindowTitle
  • 3.7 设置窗口固定大小 setFixedSize

头文件:
在这里插入图片描述
主函数:
在这里插入图片描述
mywindow.cpp:
在这里插入图片描述

产生的界面:
在这里插入图片描述

4. 对象树

  • 4.1当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。
  • 4.2一定程度上简化了内存回收机制
    在这里插入图片描述

5. Qt中的坐标系

  • 5.1 左上角为( 0 , 0) 点
  • 5.2 x以右为正方向
  • 5.3 y以下为正方向
    在这里插入图片描述

6. 信号和槽

在这里插入图片描述

  • 6.1 连接函数 :connect
  • 6.2 参数
  • 6.2.1 参数1 信号的发送者
    - 6.2.2 参数2 发送的信号(函数地址)
    - 6.2.3 参数3 信号的接受者
    - 6.2.4 参数4 处理的槽函数 (函数的地址)
  • 6.3 松散耦合
  • 6.4 实现 点击按钮 关闭窗口的案例
  • 6.5 connect(btn , &QPushButton::click , this , &QWidget::close );
    在这里插入图片描述

7. 自定义信号和槽

  • 7.1 自定义信号
    • 7.1.1 写到 signals
    • 7.1.2 返回 void
    • 7.1.3 需要声明,不需要实现
      - 7.1.4 可以有参数 ,可以重载
  • 7.2 自定义槽函数
    • 7.2.1 返回void
    • 7.2.2 需要声明 ,也需要实现
    • 7.2.3 可以有参数 ,可以重载
      - 7.2.4 写到 public slot下 或者public 或者全局函数
  • 7.3 触发自定义的信号
    • 7.3.1 emit 自定义信号
  • 7.4 案例-下课后,老师触发饿了信号,学生响应信号,请客吃饭

案例代码:
teacher.h:在这里插入图片描述

student.h:
在这里插入图片描述
widget.h:
在这里插入图片描述
student.cpp槽函数:
在这里插入图片描述
widget.cpp窗口函数:在这里插入图片描述

8. 当自定义信号和槽出现重载

  • 8.1 需要利用函数指针 明确指向函数的地址
  • 8.2 void( Teacher:: * tSignal )( QString ) = &Teacher::hungry;
  • 8.3 QString 转成 char * (这样显示字符串就没有双引号引着了)
    在这里插入图片描述
    • 8.3.1 .ToUtf8() 转为 QByteArray
    • 8.3.2 .Data() 转为 Char *
  • 8.4 信号可以连接信号
  • 8.5 断开信号 disconnect

案例代码
teacher.h:
在这里插入图片描述
student.h:
在这里插入图片描述
student.cpp:
在这里插入图片描述

widget.cpp:
在这里插入图片描述
在这里插入图片描述
信号连接信号(或断开)在这里插入图片描述

9. 拓展

  • 9.1 信号可以连接信号
  • 9.2 一个信号可以连接多个槽函数
  • 9.3 多个信号可以连接同一个槽函数
  • 9.4 信号的参数槽函数的参数 必须类型一一对应
  • 9.5 信号和槽的参数个数 是不是要一致?信号的参数个数 可以多余 槽函数的参数个数
  • 9.6 信号槽可以断开连接 disconnect

10. Qt4版本写法

  • 10.1 connect( 信号的发送者, 发送的信号SIGNAL( 信号) ,信号接受者, 槽函数SLOT(槽函数) )
  • 10.2 优点 参数直观
  • 10.3 缺点 编译器不会检测参数类型

11. Lambda表达式

  • 11.1 [ ]标识符 匿名函数
    • 11.1.1 = 值传递
    • 11.1.2 & 引用传递
  • 11.2 () 参数
  • 11.3 {} 实现体
  • 11.4 mutable 修饰 值传递变量 ,可以修改拷贝出的数据,改变不了本体
  • 11.5 返回值 []() ->int {}
  • 在这里插入图片描述

12. 信号槽的总结在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值