QT中信号和槽

实现函数:connect(sender, signal, receiver, slot);

参数1:信号的发送者 (对象、指针)

参数2:发送的信号(函数)

参数3:信号的接受者(对象、指针)

参数4:处理的槽函数(响应动作)

以点击按钮关闭程序窗口为例:

connect(btn,&QPushButton::clicked,this,&QWidget::close)

btn是创建的按钮,可以用指针,也可以用引用;&QPushButton::click是点击信号地址,是在QPushButton类的父类中继承下来的函数,&QWidget::close同理

自定义信号和槽

信号写到 signals下,信号需要申明,不需要实现。

槽写到public slot或 public 或者全局函数。

触发信号 emit 自定义信号,相当于点击了按钮触发信号。

先做连接,再触发信号。

当自定义信号和槽出现重载,需要利用函数的指针,明确指向函数的地址

一个信号可以连接多个槽

多个信号可以连接同一个槽

信号和信号的连接与信号和槽一样

信号和槽的参数类型需对应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QT信号(Signals and Slots)是一种用于实现对象之间通信的机制。通过信号机制,可以将一个对象的动作或状态变化传递给其他对象进行相应的处理。以下是QT使用信号的程序开发流程: 1. 定义信号: - 在需要发送信号的类,使用`signals`关键字声明信号,并定义信号的参数列表。例如:`signals: void mySignal(int value);` - 在需要接收信号的类,使用`slots`关键字声明函数,并定义函数的参数列表和返回值类型。例如:`public slots: void mySlot(int value);` 2. 连接信号: - 在需要连接信号的地方,使用`connect`函数进行连接。例如:`connect(sender, SIGNAL(mySignal(int)), receiver, SLOT(mySlot(int)));` - `sender`表示发送信号的对象,`SIGNAL(mySignal(int))`表示发送的信号,`receiver`表示接收信号的对象,`SLOT(mySlot(int))`表示接收的函数。 3. 发射信号: - 在发送信号的地方,通过调用`emit`关键字加上信号名和参数列表来发射信号。例如:`emit mySignal(value);` 4. 函数处理: - 当信号被发射时,与之连接的函数会被自动调用,并将信号的参数传递给函数进行处理。 需要注意的是,信号的连接可以在任何地方进行,但通常会在对象的构造函数或初始化函数进行连接。 通过使用信号机制,可以实现对象之间的灵活通信,从而实现事件的处理、界面更新、数据传递等功能。这种机制在QT被广泛应用,可以提高程序的可维护性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值