Russian Qt Forum
Ноябрь 23, 2024, 22:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QComboBox  (Прочитано 2825 раз)
123123
Гость
« : Ноябрь 12, 2009, 16:19 »

есть задача показывать иконки в items, это я реализовал так:
Код:
ui->comboBox->addItem(QIcon(QPixmap(fileNames),fileNames,Qt::UserRole);

Проблем с этим не возникло, но возникла необходимость прятать иконку в строке, т.е. в списке нужна иконка, а в строке где текущий итем нужно не показывать иконку. Как это можно реализовать?

пример на картинке показан
Записан
spectre71
Гость
« Ответ #1 : Ноябрь 13, 2009, 11:34 »

Например:
Сделать наследника QComboBox со своим списком иконок. Не добавлять иконки в список через addItem, а добавлять их в свой список у наследника. Сделать своего делегата QStyledItemDelegate. Сделать отрисовку иконок(из своего списка) и текста в его "paint". Установить его в свой ComboBox.
void QComboBox::setItemDelegate ( QAbstractItemDelegate * delegate );
Поскольку через addItem иконки не были добавлены, в едите они не появятся. А отрисовка в выпадающем списке будет делаться через твой делегат(делегат не отрисовывает в едите!).

Может есть способ и попроще.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.127 секунд. Запросов: 20.