Класс QListWidget. Вставка элементов

   
На этом шаге рассмотрим вставку элементов в виджет класса QListWidget.

   
В список можно добавить сразу несколько текстовых элементов, передав объект класса QStringList, содержащий список строк, в метод insertItems().

   
Для создания текстового элемента можно воспользоваться методом insertItem(), в который нужно передать только строку текста.

   
Объект QListWidgetItem также можно вставить в список при помощи метода insertItem(). Отличие его от метода addItem() в том, что можно явно указать позицию добавляемого элемента. Созданному элементу можно присвоить растровое изображение, что выполняется с помощью метода QListWidgetItem::setIcon() объекта элемента списка.

   
Примечательно также и то, что в элементах списка можно устанавливать не только растровые изображения и текст, но и виджеты. Для этого в классе QListWidget определены методы setItemWidget() и itemWidget(). Первым параметром метода setItemWidget() нужно передать указатель на объект элемента списка, а вторым — указатель на виджет. Для того чтобы получить указатель на виджет, расположенный в элементе списка, необходимо передать в метод itemWidget() указатель на объект элемента списка.

   
На рис. 1 показан пример использования простого списка, в котором перечисляются операционные системы.


Рис.1. Пример простого списка

   
Приведем текст файла приложения:

QStringList lst;
//создается виджет простого списка lwg
QListWidget lwg;
QListWidgetItem* pitem = 0;
//методом виджета списка setIconSize() задается
//размер для растровых изображений элементов
lwg.setIconSize(QSize(50, 50));
//список строк lst заполняется надписями для элементов
lst << "Android" << "Linux" << "Windows" << "MacOSX" << "MSDOS";
//проходим по этому списку при помощи foreach
foreach(QString str, lst)
{   //создаем и добавляем элементы в список
    pitem = new QListWidgetItem(str, &lwg);
    //вызов метода setIcon() устанавливает растровое
    //изображение для каждого элемента
    pitem->setIcon(QPixmap(str + ".jpg"));
}
lwg.resize(200, 200);
lwg.show();

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



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

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