2

我现在正在使用 Qt。

我写了一个 C++ 类A,里面有一些公共函数。现在,我正在编写一个 Qt 类B,它具有来自QObjectA 的多个继承。

我想将 A 中的一个公共功能更改为B中的公共插槽

有可能吗?

4

1 回答 1

1

您可以通过简单地在其中创建一个插槽B并在其中委托给A' 函数来做到这一点。
这是一个例子:

#include <QtCore>

class A {
    public:
        A() {}
        void foo() { qDebug() << "In A::foo()"; }
};

class B: public QObject, public A {
    Q_OBJECT

    public:
        B(QObject *parent=0): QObject(parent), A() {
            connect(this, SIGNAL(fire()), this, SLOT(foo()));
        }
    public slots:
        void foo() {
            qDebug() << "In slot B::foo()";
            A::foo();
        }
    signals:
        void fire();
    public:
        void test() { emit fire(); }
};

A根本不需要“了解”Qt。

于 2012-02-07T07:53:07.650 回答