В QT, как я использую слоты Q_OBJECT и сигналы со множественным наследованием?

Следующий набор должен заставить Вас напряженно трудиться:

ФОРТРАН - Упрощенный язык, который был популярен в течение слишком многих лет в технических кругах
LISP - классический язык AI. Пролог был лучше, по моему мнению, но LISP был более популярен
, Ada - Дала мировые пакеты и дженерики и строгий ввод данных.
Алгол - Созданный для фиксации многих проблем с ФОРТРАНОМ. Это - дедушка C,

Все были чрезвычайно влиятельными языками в свое время.

6
задан San Jacinto 28 September 2009 в 20:39
поделиться

2 ответа

В документации для moc указано, что в случаях множественного наследования класс, предоставляющий QObject, должен появляться первым

. Если вы используете множественное наследование, moc предполагает, что первый унаследованный class является подклассом QObject. Также, убедитесь, что только первый унаследованный class - это QObject.

  // правильно
 класс SomeClass: общедоступный QObject, общедоступный OtherClass
 {
 ...
 };

Виртуальное наследование с QObject есть не поддерживается.

12
ответ дан 8 December 2019 в 17:24
поделиться
class foo: public QObject, public QXmlDefaultHandler
{
    public:
        foo();
        ~foo();
   Q_OBJECT
   public slots:
       void bar();
}

As simple as it sounds, if you don't put QObject first in the inheritance list, this task is impossible. It's a limitation in Qt's meta object system. If you don't do this, the compiler will try to apply some members of QObject as part of QXmlDefaultHandler.

2
ответ дан 8 December 2019 в 17:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: