crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QList<QLabel>, Подскажите...
fortero
  опции профиля:
сообщение 7.6.2011, 21:57
Сообщение #1


Участник
**

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

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




Репутация:   0  


Есть вот такой контейнер, если это правильно?
QList<QLabel> konLb;


Можно ли делать контейнеры с виджетами?
Если да, то как его наполнить?
Спасибо за внимание!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.6.2011, 23:05
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Как то так:
http://www.forum.crossplatform.ru/index.ph...ic=5211&hl=

А точнее:
http://www.forum.crossplatform.ru/index.ph...ost&p=37730

Сообщение отредактировал RazrFalcon - 7.6.2011, 23:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 8.6.2011, 10:41
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


QList<QLabel*> labels;
labels.append(new QLabel(parent));


хранить нужно указатели на виджеты, а не сами обьекты
если при создании QLabel ты передаешь ему parent то об удалении можно не беспокоится, parent должен сам удалить всех своих детей, если не передаешь то очищать список нужно вручную, см. доку
 QList<QWidget *> list;
...
while (!list.isEmpty())
     delete list.takeFirst();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 8.6.2011, 13:58
Сообщение #4


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

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

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




Репутация:   94  


Цитата(fortero @ 8.6.2011, 0:57) *
Можно ли делать контейнеры с виджетами?
нет, т.к. у виджетов нет публичного оператора присваивания и конструктора копирования, а списку они нужны:
Цитата
сли вы попытаетесь создать экземпляр QList<QWidget>, компилятор сообщит, что конструктор копирования и операторы присваивания QWidget запрещены. Если вы хотите поместить эти виды объектов в контейнер, то поместите указатели на них, например, так QList<QWidget *>
тыц.

Так что делать только как DIMEDROLL прописал
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 8.6.2011, 20:34
Сообщение #5


Участник
**

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

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




Репутация:   0  


Цитата(RazrFalcon @ 7.6.2011, 23:05) *


Спасибо. я разобрался, там надобыло указатель поставить и всё получилось!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 8.6.2011, 23:10
Сообщение #6


Участник
**

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

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




Репутация:   0  


Цитата(DIMEDROLL @ 8.6.2011, 10:41) *
QList<QLabel*> labels;
labels.append(new QLabel(parent));


хранить нужно указатели на виджеты, а не сами обьекты
если при создании QLabel ты передаешь ему parent то об удалении можно не беспокоится, parent должен сам удалить всех своих детей, если не передаешь то очищать список нужно вручную, см. доку
 QList<QWidget *> list;
...
while (!list.isEmpty())
     delete list.takeFirst();

А в деструктор это можно поместить?
 while (!list.isEmpty())
     delete list.takeFirst();

Будет работать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 8.6.2011, 23:54
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


ну да, этот код обычно и помещают в деструктор
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 19:55