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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget QT4.5  (Прочитано 4213 раз)
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« : Март 02, 2013, 17:05 »

Установил размеры QTableWidget, создал QTableWidgetItem и разместил в таблице...
Вопрос: когда меняются размеры таблицы, что делать с уже заполненными частями?
Создавать новые QTableWidgetItem? И надо ли удалять уже созданные ранее?
Как то непонятно кому они принадлежат и кто их должен удалять?
 Непонимающий
Записан

Как мало времени и как много нужно узнать
carrygun
Гость
« Ответ #1 : Март 03, 2013, 14:24 »

Размеры геометрические? И почему не попробовать самаому для начала? Принадлежность зависит от того как создаются итемы.
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #2 : Март 04, 2013, 10:20 »

Размеры в смысле число ячеек и столбцов Смеющийся

Во всех вариантах создания

QTableWidgetItem ( int type = Type )
QTableWidgetItem ( const QString & text, int type = Type )
QTableWidgetItem ( const QIcon & icon, const QString & text, int type = Type )
QTableWidgetItem ( const QTableWidgetItem & other

не указан владелец, т.е. отвечающий за освобождение памяти Непонимающий

Вот и не понимаю, как надо действовать, что бы память не утекла Злой
Записан

Как мало времени и как много нужно узнать
Bepec
Гость
« Ответ #3 : Март 04, 2013, 10:47 »

Когда ты добавляешь элемент в модель, она назначает себя его родителем и следит за памятью.
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #4 : Март 04, 2013, 10:51 »

2Верес: Какая модель, когда QTableWidget?
Парентом для этих айтемов после вставки станет сам QTableWidget. Для полной очистки зови его метод clear(), затем можно setRowCount(0) setColumnCount(0). Можно удалить строку или столбец.
« Последнее редактирование: Март 04, 2013, 10:58 от Hellraiser » Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #5 : Март 04, 2013, 11:12 »

Немного поправлюсь: модель там есть, но она, по сути своей, для внутреннего применения. Элементы добавляются не в модель, а в сам QTableWidget.
Записан
carrygun
Гость
« Ответ #6 : Март 04, 2013, 11:32 »

QTableWidget возмет родительские обязанности на себя, когда ты сунешь в него элементы.

Прочти ман по
Код:
void QTableWidget::setItem(int row, int column, QTableWidgetItem * item)
Записан
Bepec
Гость
« Ответ #7 : Март 04, 2013, 11:36 »

to Hellraiser:
Представь себе, QTableWidget представляет собой QTableView с QStandartItemModel, насколько я помню.
И то, что ты говоришь - немного эмм... бредово?

PS добавляешь ты всё таки в модель. То, что она встроенная, не значит, что её нет Веселый
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #8 : Март 04, 2013, 11:43 »

Ну что ж, попробуй достучаться до нее  Улыбающийся. На то он и виджет, чтобы самому управляться с моделью. А вообще - спор бессмысленный, касающийся исключительно терминологии. На мой взгляд - виджетайтемы добавляются в виджет, а в модель добавляются данные.
P.S. А внутри у него QTableModel.
« Последнее редактирование: Март 04, 2013, 12:01 от Hellraiser » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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