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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QObject::setParent() и QWidget::setParent()  (Прочитано 5327 раз)
vana
Гость
« : Апрель 02, 2010, 14:33 »

Только начал изучать библиотеку. Обнаружил, что QWidget перегружает setParent() с новой сигнатурой. Протестировал следующий код:
Код:
QObject* pParent = new QObject();
QWidget* pSender = new QWidget();
static_cast<QObject*>(pSender)->setParent(pParent);
поймал ассерт: "ASSERT: '!d->isWidget' in file kernel\qobject.cpp"
Выходит, задумано так, что произвольный объект не может отвечать за время жизни виджета.
Зачем? Или это просто баг?
« Последнее редактирование: Апрель 02, 2010, 14:51 от vana » Записан
BRE
Гость
« Ответ #1 : Апрель 02, 2010, 14:59 »

Выходит, задумано так, что произвольный объект не может отвечать за время жизни виджета.
Не может.
Для определения этого достаточно взглянуть на конструкторы:
QObject::QObject ( QObject * parent = 0 )
QWidget::QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 )

В виджетах отношения parent <-> child сложнее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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