crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Динамические объекты в Qt?
registr
  опции профиля:
сообщение 11.10.2011, 21:29
Сообщение #11


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


MyWidget::MyWidget(QWidget *parent) : QWidget(parent){
  QVBoxLayout *mainLay = new QVBoxLayout;
  mainLai->addWidget(new QLabel("А"));
  this->setLayout(mainLay);
}

Кстати, в твоем коде не нужно писать
QVBoxLayout *mainLay = new QVBoxLayout(this);
так как родительско-потомковая связь установится при
this->setLayout(mainLay);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.10.2011, 20:20
Сообщение #12


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(RazrFalcon @ 11.10.2011, 19:52) *
У кого есть родители?

SameObject *parent = new SameObject(); -- у этого объекта нет родителя (его надо удалять самостоятельно)
...
OtherObject * o = new OtherObject(parent); -- а у этого объекта - ЕСТЬ (его удалит родитель, когда будет сам удалятся)

Посмотри внимательно на описание конструктора QObject и его наследников. Они принимают в качестве аргумента родительский объект. А внутри кода, в том числе собственных объектов, указатель на родителя передаётся в базовый класс:
MyObject::MyObject(QObject *parent) : QObject(parent) -- мы передаём parent в конструктор базового класса, чтобы вся механика родительско-дочерних связей работала штатным образом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.11.2024, 22:25