Шаг 74.
Библиотека Qt.
Класс 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(); 

    Файлы приложения можно взять здесь.

    На следующем шаге продолжим знакомиться с классом QListWidget и рассмотрим выбор элементов пользователем.




Предыдущий шаг Содержание Следующий шаг