Russian Qt Forum
Ноябрь 26, 2024, 01:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QObject должен быть первым базовым классом  (Прочитано 4603 раз)
Akon
Гость
« : Апрель 03, 2012, 08:23 »

Кто нить выяснял? В чем техническая причина сего ограничения?
Записан
Makss
Гость
« Ответ #1 : Апрель 03, 2012, 09:05 »

Не обязательно! смотря что вы хотите получить в результате наследования. Если нужен не гуёвый класс с механизмом сигнал-слот, то от QObject, иначе можно и не наследоваться
Записан
mutineer
Гость
« Ответ #2 : Апрель 03, 2012, 10:04 »

Кто нить выяснял? В чем техническая причина сего ограничения?

Скорее всего дело в особенностях moc - видимо он не настолько интелектуален, чтобы нормально отработать если наследник QObject не первый в списке
Записан
sudo
Гость
« Ответ #3 : Апрель 03, 2012, 14:41 »

Не обязательно! смотря что вы хотите получить в результате наследования. Если нужен не гуёвый класс с механизмом сигнал-слот, то от QObject, иначе можно и не наследоваться

Не обязательно наследоваться от QObject? Ясно дело. Не обязательно, чтобы QObject был первым базовым? Ну да, Нокиа хрень какую-то написала в документации. Гуи тут при чём? Для чего нужен QObject, знаем?
Записан
Bepec
Гость
« Ответ #4 : Апрель 03, 2012, 14:53 »

Подмигивающий меня эта тема сегодня спасла от сумасшедствия. Пытался часа полтора привить к ГрафикИтему сигналы Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Апрель 03, 2012, 15:01 »

Помню эту рекомендацию (QObject должен быть первым), но также помню что никаких реальных аргументов не увидел. Видимо "если QObject первый, то точно все будет работать, а иначе хз". И действительно, ведь запомнить букварь куда проще чем чего-то там думать, да еще ошибаться  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Апрель 03, 2012, 15:02 »

Подмигивающий меня эта тема сегодня спасла от сумасшедствия. Пытался часа полтора привить к ГрафикИтему сигналы Веселый
Код
C++ (Qt)
class MyItem : public QObject, public QGraphicsItem
{
   Q_OBJECT
   ...
};
не?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sudo
Гость
« Ответ #7 : Апрель 03, 2012, 15:04 »

Метод void Moc::checkSuperClasses(ClassDef* def)
В коде из списка базовых классов вытаскивается первый. Сделано это скорее всего из-за каких-то языковых ограничений при наследовании. Кто нагуглит, киньте ссылкой чтоль
Записан
Bepec
Гость
« Ответ #8 : Апрель 03, 2012, 15:07 »

Именно kambala, именно.

Я то, прости тролле, когда то об этом читал, но забыл Подмигивающий

Блатыкался час, мб даже 2. Потом темку увидел и осенило Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 23.