Qt不同类之间槽函数连接

本文详细介绍了如何使用Qt的信号槽机制实现在不同类之间的消息传递。首先,B类需要继承QObject并声明信号,然后在适当位置发射信号。在A类中声明接收槽函数并连接信号与槽。通过connect函数完成两者间的连接,实现B类向A类的消息传递。该机制在Qt编程中对于类间通信至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt的槽函数消息传递机制不仅适合在同一个类中使用 ,同时也可以在不同类之间进行消息传递。信号槽在不同类之间进行消息传递步骤如下:
假如B类向A类传递信号
1.首先在B类中必须继承QObject类或者它的子类们,并且包含头文件。如果B类已经继承了其他类,那就让B类多继承。例如:ImageWidget类继承QObject和QGraphicsItem两个类(QObject或者它的子类们一定要放在前面,第二个public不能省略,否则会出现类型转换访问不存在)

class ImageWidget :public QObject,public QGraphicsItem
{
    Q_OBJECT//这个是信号指令,需要消息传递则需要加上
}

2.在B类头文件中声明信号
括号里面的参数是信号携带的信息,可以不携带信息,只做函数跳转的作用。

signals:
    void sendMessage(发送携带的信息);

3.在B类.cpp文件中需要发送信号的地方将信号发送出去

//此处为需要发送信号的位置(函数内部)
emit sendMessage(发送携带的信息);

4.在A类头文件中声明接收函数并且在.cpp中写函数处理内容
如果没有信息被携带,则不需要参数

private slots:
	void getMessage(接收的信息);

5.在A类.cpp中连接信号与槽

connect(B类对象,SIGNAL(sendMessage(接收参数的类型)),this,SLOT(getMessage(接收参数的类型)));

如有描述不当,感谢指正,诚恳求教!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值