Qt学习随笔-2、Qt中的对象树、坐标系、信号和槽

发布时间 2023-10-09 16:26:05作者: 啊波波老表

      1  对象树

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

    

 

      2  Qt中的坐标系

  •     2.1  左上角为(0,0)点
  •     2.2  x以右为正方向
  •     2.3  y以下为正方向

 

      3  信号和槽

 

  •     3.1  连接函数:connect
  •     3.2  参数
  •            3.2.1  参数1  信号的发送者
  •            3.2.2  参数2  发送的信号(函数地址)
  •            3.2.3  参数3  信号的接收者
  •            3.2.4  参数4  处理的槽函数(函数地址)
  •      3.3  松散耦合
  •      3.4  实现 点击按钮  关闭窗口案例
  •      3.5  connect(btn, &QPushButton::Click,this,&QPushButton::close)

      4  自定义的信号和槽

  •      4.1  自定义信号
  •             4.1.1  写到signals下
  •             4.1.2  返回值是void
  •             4.1.3  需要声明·,不需要实现
  •             4.1.4  可以有参数,可以重载
  •       4.2  自定义槽函数
  •             4.2.1  返回值void
  •             4.2.2  需要声明,也需要实现
  •             4.2.3  可以有参数,可以重载
  •             4.2.4  写到public slot下或public或者全局函数
  •        4.3  触发自定义信号
  •             4.3.1  emit 自定义信号
  •     

      5  自定义的信号和槽发生重载

  •        5.1  需要利用函数指针  明确指向函数的地址
  •               函数指针声明:void(*pFunc)(int,int)
  •        5.2  void(Teacher:: *teacherSignal)(QString) = &Teacher::hungry;
  •        5.3  QString 转成 char *
  •               5.3.1  .toUtf8() 转为 QByteArray
  •               5.3.2  .Date()  转为 char *
  •         5.4  信号可以连接信号
  •         5.5  断开信号

      6  拓展

  •         6.1  信号可以连接信号
  •         6.2  一个信号可以连接多个信号 
  •         6.3  多个信号可以连接同一个槽函数
  •         6.4  信号和槽函数的参数类型: 必须一一对应
  •         6.5  信号和槽的个个数:信号的参数个数 可以多于槽函数的参数个数
  •         6.6  信号槽可以断开连接  disConnect

      7  Qt4版本写法

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