相关疑难解决方法(0)

在接口类中声明抽象信号

当实现类已经从QObject/QWidget中获取时,如何在抽象类/接口中声明Qt信号?

class IEmitSomething
{
   public:
     // this should be the signal known to others
     virtual void someThingHappened() = 0;
}

class ImplementEmitterOfSomething : public QWidget, public IEmitSomething
{
     // signal implementation should be generated here
     signals: void someThingHappended();
}
Run Code Online (Sandbox Code Playgroud)

c++ qt qt-signals

32
推荐指数
3
解决办法
2万
查看次数

无法连接基类信号

当我尝试连接BASE类信号时,Qt告诉我DERIVED类上不存在信号.

这是为什么?如何告诉connect使用BASE类?

namespace MyNamespace 
{

void register(Derived* derived)
{
    // ERROR MSG
    // QObject::connect: No such signal MyNamespace::Derived::baseSignal()

    QObject::connect( derived, SIGNAL(baseSignal()), 
                      foo,     SLOT(fooSlot())); 
}

class Base : public QObject
{
    Q_OBJECT

signals:
    void baseSignal();
};

class Derived : public QObject,
                public Base
{
    Q_OBJECT

signals:
    void derivedSignal();
};

} // namespace MyNamespace
Run Code Online (Sandbox Code Playgroud)

c++ qt

3
推荐指数
1
解决办法
2512
查看次数

标签 统计

c++ ×2

qt ×2

qt-signals ×1