gpt4 book ai didi

c++ - 信号/槽基类多继承

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:36 27 4
gpt4 key购买 nike

在我的 Qt 多线程程序中,我想实现一个基于 QObject 的基类,以便从它派生的每个类都可以使用它的信号和槽(例如抛出错误)。

我实现了 MyQObject : public QObject{...}。但是对于从 QWidget 派生的类,我不能从 QWidget 和 MyQObject 多重继承。

我可以通过 QMetaObject::invokeMethod(...) 直接调用槽来解决这个问题,但我很感兴趣是否有另一种方法来解决这个问题。

最佳答案

QObject 的多重继承可以遵循这些规则:

  1. 只有一个父类可以是QObject/QWidget

  2. QObject 父对象必须是初始化中的第一个父对象。

有一个技巧允许您在非 qobject 接口(interface)中声明类似信号的函数,然后使用组合声明它继承该接口(interface)。看看this post ,它可能会有用。

关于c++ - 信号/槽基类多继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com