Название: Как создать таблицу на n,m полей? Отправлено: z11t3 от Январь 27, 2010, 10:39 Гуглил, читал доку, смотрел примеры в поставке QT, искал по форуму. В общем пытался разобраться самостоятельно две недели.
Помогите кодом пожалуйста. Нужно создать таблицу размерностью n,m. Отображаться пользователю в ней будет текст. Изменять количество полей/строк и текст в ячейках. Пока не хочу разбираться с моделями данных (связанная с SQL таблицей модель, при изменении данных в таблице изменила их в базе, боюсь за взрыв своего мозга) P.S. Искал по форуму, найденное не помогло мне разобраться в вопросе. Название: Re: Как создать таблицу на n,m полей? Отправлено: BRE от Январь 27, 2010, 10:56 Без моделей будет очень тяжко работать с большими таблицами.
Для работы с таблицами без явного использования модели в Qt есть класс QTableWidget. Для создания таблицы можно использовать конструктор: QTableWidget::QTableWidget ( int rows, int columns, QWidget * parent = 0 ) в котором указывается количество рядов и колонок или: QTableWidget::QTableWidget ( QWidget * parent = 0 ), но после создания нужно будет задать размеры используя методы: setRowCount( rows ); setColumnCount( columns ); После создания таблицы, в ней нет ни одного элемента (QTableWidgetItem), которые хранят данные - таблица пуста. Элементы могут устанавливаться в ячейки: * если пользователь отредактировал одну из ячеек; * программно с помощью метода QTableWidget::setItem. Получить элемент можно с помощью метода QTableWidget::item. Если в этой ячейке нет элемента, item вернет 0. Это означает, что для занесения значения в эту ячейку, необходимо создать элемент и установить его в таблицу. Для добавления строк/столбцов есть методы: void QTableWidget::insertRow ( int row ) [slot] void QTableWidget::insertColumn ( int column ) [slot] Название: Re: Как создать таблицу на n,m полей? Отправлено: Amigo_sa от Январь 27, 2010, 10:56 Код: // form.gameTable типа QTableWidget За дополнительной функциональностью читайте Assistant. Название: Re: Как создать таблицу на n,m полей? Отправлено: Amigo_sa от Январь 27, 2010, 10:58 Код: form.gameTable->(i, j, item); Название: Re: Как создать таблицу на n,m полей? Отправлено: z11t3 от Январь 27, 2010, 11:06 Спасибо BRE. С моделями думаю теперь сам разберусь. Таблицы у меня действительно большие (~20М записей)
Amigo_sa благодарю, понял где я ошибался. |