Класс QTableWidget

   
На этом шаге рассмотрим класс QTableWidget.

   
Класс QTableWidget представляет собой таблицу. Объект ячейки реализован в классе QTableWidgetItem. Созданную ячейку можно вставить в таблицу вызовом метода QTableWidget::setItem(). Первым параметром метода setItem() является номер строки, а вторым — номер столбца. Таким образом, эти параметры задают местоположение ячейки в таблице.

   
Установить текст в самой ячейке можно с помощью метода QTableWidgetItem::setText(), а для размещения растрового изображения можно воспользоваться методом QTableWidgetItem::setIcon(). Если в ячейке установлены как текст, так и растровое изображение, то растровое изображение займет место слева от текста.

   
Класс ячейки QTableWidgetItem предоставляет конструктор копирования, что позволяет создавать копии элементов. Также для этой цели можно воспользоваться методом clone().

   
В таблицу допускается, помимо текста и иконок, помещать и виджеты. Для этого используется метод setCellWidget().

   
При двойном щелчке кнопкой мыши на поле ячейки она переходит в режим редактирования, при этом используя виджет QLineEdit.

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


Рис.1. Пример таблицы

   
Рассмотрим текст приложения:

const int n = 10;
int pr;
//создается виджет таблицы tbl
//первый и второй параметры, передаваемые в конструктор,
//задают количество строк и столбцов
//таблица будет иметь размерность 10 на 10 
QTableWidget tbl(n, n);
QTableWidgetItem* ptwi = 0;
QStringList lst;
//чтобы задать заголовки строк и столбцов таблицы
//(которые у нас совпадают), мы сначала формируем их список
lst << "0" << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9";
//а затем передаем его в метод setHorizontalHeaderLabel()
//для горизонтальных и в setVerticalHeaderLabel()
//для вертикальных заголовков
tbl.setHorizontalHeaderLabels(lst);
tbl.setVerticalHeaderLabels(lst);
//создание объектов ячеек выполняется в цикле (указатель ptwi)
//в качестве текста в конструктор передается произведение 
//номера строки и столбца ячейки
for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
        pr=i*j;
        ptwi = new QTableWidgetItem(QString("%1").arg(pr));
        //вызовом метода setItem() созданная ячейка таблицы
        //устанавливается в позицию, указанную в первом
        //и втором параметрах
        tbl.setItem(i, j, ptwi);
    }
}

   
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий