Qt

Добавление данных в таблицу QTableWidget. Очистка таблицы

Необходимо организовать добавление данных в таблицу QTableWidget. Для начала расположим на форме виджет класса QTableWidget с именем tableWidget. Создадим в таблице пару колонок, назвав их, скажем, «Колонка 1» и «Колонка 2».

Предположим, что в объекте map типа QMap<QString, QString> у нас хранятся некие данные, которые в определенный момент мы хотим разместить в табличке.

Прежде, чем организовать добавление данных в ячейки виджета, нужно их создать. Тогда, процесс заполнения таблицы будет выглядеть следующим образом:

foreach(QString key, map.keys()) {
	qDebug() << "key = " << key << "value = " << map.value(key);
    ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1);
    QTableWidgetItem* item = new QTableWidgetItem;
    item->setText(key);
    item->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 0, item);
    QTableWidgetItem* item1 = new QTableWidgetItem;
    item1->setText(map.value(key));
    ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 1, item1);
}

Данные будут отсортированы по ключу (именно такой сортировкой грешит QMap).

Подстроим размеры колонок под содержимое, прокрутим табличку вниз и спозиционируем курсор на последней записи:

ui->tableWidget->resizeColumnsToContents();
ui->tableWidget->scrollToBottom();
ui->tableWidget->selectRow(ui->tableWidget->rowCount()-1);

Чтобы очистить всю таблицу, включая заданные заголовки таблицы, воспользуемся следующим:

ui->tableWidget->clear();

Тогда вместо названий колонок «Колонка 1» и «Колонка 2» будут проставлены их номера по порядку.

Чтобы очистить таблицу, но оставить при этом названия колонок, напишем так:

for (int i = 0; i < ui->tableWidget->rowCount(); ++i)
        ui->tableWidget->removeRow(i);
ui->tableWidget->setRowCount(0);

Чтобы узнать, как таблицу заполнить данными из SQL запроса, пройдите к другой записи: Добавление данных запроса в таблицу QTableWidget.

Добавление данных в таблицу QTableWidget. Очистка таблицы: 4 комментария

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.