Название: Сигналы и слоты Отправлено: phpCoder от Январь 14, 2015, 22:35 Добрый вечер.
Есть базовый класс Base, в котором хочу сделать один сигнал и один слот. Есть класс MyClass который наследник Base. В классе MyClass хочу сделать флаги, сигналы и слоты, а также пользоваться тем, что есть в классе Base. Есть еще класс WidgetClass - наследник Qwidget (qframe... без разницы). Но он также и наследник Base. Вопрос: как и что надо сделать, чтобы класс Base успешно наследовался, как обычными класса, там и теми классами, которые являются наследниками от qobject? Где нужно ставить Q_OBJECT, а где Q_GADGET? Чтобы Qt не парил, что такой-то сигнал и слот не определены, qMetaObject не определен. Какая-нибудь хрень является ambigious. Чтобы не 'connect' was not declared in this scope. Название: Re: Сигналы и слоты Отправлено: Alex Custov от Январь 14, 2015, 23:01 двойное наследование от QObject не поддерживается.
Название: Re: Сигналы и слоты Отправлено: phpCoder от Январь 14, 2015, 23:40 И что тогда?
В базовом классе нужно сделать сигнал и слот. В таком случае двойное наследование от любого виджетоподобного класса не поддерживается. Название: Re: Сигналы и слоты Отправлено: kambala от Январь 15, 2015, 00:10 ну сделай через агрегацию вместо наследования, вот проблема-то
Название: Re: Сигналы и слоты Отправлено: phpCoder от Январь 15, 2015, 09:37 Агрегацию чего?
Название: Re: Сигналы и слоты Отправлено: torwig от Январь 15, 2015, 09:39 Имеется в виду чтобы один класс не наследовал другой, а содержал его в себе, чтобы второй класс был членом (одним из) первого
Название: Re: Сигналы и слоты Отправлено: __Heaven__ от Январь 15, 2015, 09:50 А виртуальное наследование тут не подойдёт?
Название: Re: Сигналы и слоты Отправлено: torwig от Январь 15, 2015, 20:04 А виртуальное наследование тут не подойдёт? Alex Custov пишет, что двойное наследование от QObject не поддерживается. Название: Re: Сигналы и слоты Отправлено: __Heaven__ от Январь 15, 2015, 20:50 Я, конечно, основываюсь на голой теории, но разве виртуальное наследование не подразумевает одинарное наследование?
Название: Re: Сигналы и слоты Отправлено: Alex Custov от Январь 15, 2015, 20:58 Я, конечно, основываюсь на голой теории, но разве виртуальное наследование не подразумевает одинарное наследование? Я подозреваю что из-за виртуального наследования второй класс-наследник QObject будет лишён метаинформации, следовательно сигналы-слоты для него работать не будут. Название: Re: Сигналы и слоты Отправлено: Igors от Январь 16, 2015, 10:58 Я, конечно, основываюсь на голой теории, но разве виртуальное наследование не подразумевает одинарное наследование? Так Вы не сможете его реализовать не покалечив исходников Qt, напрКод: class Q_WIDGETS_EXPORT QWidget : public QObject, public QPaintDevice |