Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Примерный ученик от Март 02, 2013, 17:05



Название: QTableWidget QT4.5
Отправлено: Примерный ученик от Март 02, 2013, 17:05
Установил размеры QTableWidget, создал QTableWidgetItem и разместил в таблице...
Вопрос: когда меняются размеры таблицы, что делать с уже заполненными частями?
Создавать новые QTableWidgetItem? И надо ли удалять уже созданные ранее?
Как то непонятно кому они принадлежат и кто их должен удалять?
 ???


Название: Re: QTableWidget QT4.5
Отправлено: carrygun от Март 03, 2013, 14:24
Размеры геометрические? И почему не попробовать самаому для начала? Принадлежность зависит от того как создаются итемы.


Название: Re: QTableWidget QT4.5
Отправлено: Примерный ученик от Март 04, 2013, 10:20
Размеры в смысле число ячеек и столбцов ;D

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

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

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

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


Название: Re: QTableWidget QT4.5
Отправлено: Bepec от Март 04, 2013, 10:47
Когда ты добавляешь элемент в модель, она назначает себя его родителем и следит за памятью.


Название: Re: QTableWidget QT4.5
Отправлено: Hellraiser от Март 04, 2013, 10:51
2Верес: Какая модель, когда QTableWidget?
Парентом для этих айтемов после вставки станет сам QTableWidget. Для полной очистки зови его метод clear(), затем можно setRowCount(0) setColumnCount(0). Можно удалить строку или столбец.


Название: Re: QTableWidget QT4.5
Отправлено: Hellraiser от Март 04, 2013, 11:12
Немного поправлюсь: модель там есть, но она, по сути своей, для внутреннего применения. Элементы добавляются не в модель, а в сам QTableWidget.


Название: Re: QTableWidget QT4.5
Отправлено: carrygun от Март 04, 2013, 11:32
QTableWidget возмет родительские обязанности на себя, когда ты сунешь в него элементы.

Прочти ман по
Код:
void QTableWidget::setItem(int row, int column, QTableWidgetItem * item)


Название: Re: QTableWidget QT4.5
Отправлено: Bepec от Март 04, 2013, 11:36
to Hellraiser:
Представь себе, QTableWidget представляет собой QTableView с QStandartItemModel, насколько я помню.
И то, что ты говоришь - немного эмм... бредово?

PS добавляешь ты всё таки в модель. То, что она встроенная, не значит, что её нет :D


Название: Re: QTableWidget QT4.5
Отправлено: Hellraiser от Март 04, 2013, 11:43
Ну что ж, попробуй достучаться до нее  :). На то он и виджет, чтобы самому управляться с моделью. А вообще - спор бессмысленный, касающийся исключительно терминологии. На мой взгляд - виджетайтемы добавляются в виджет, а в модель добавляются данные.
P.S. А внутри у него QTableModel.