Задать вопрос

Почему parentWidget возвращает nullptr?

Имеется окно, которое должно иметь возможность изменить детей родителя родителя.
Я делаю вот как:
//RDatabaseTopMenu.cpp
RDatabaseTopMenu::RDatabaseTopMenu(QWidget *parent): RPane(parent){
RNewExaminationWindow newExamination = new RNewExaminationWindow(this);
//....
newExamination->open();
}
//RNewExaminationWindow.cpp
RNewExaminationWindow::RNewExaminationWindow(QWidget* p):QDialog(p){
QWidget* p = parentWidget(); //-<p имеет знач. nullptr
}

Почему p имеет значение nullptr?
UPD: оба класса содержат макрос Q_Object
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 8 комментариев
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Простите, что пишу с опозданием.
Потому что в Qt есть два «родителя».
Родитель, отвечающий за уничтожение, и родитель в иерархии окон.
Это вы объявили, кто автоматически уничтожит окно. А тут ещё надо someParent->addWidget(someChild);.

В Delphi это названо owner и parent соответственно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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