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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [4.2.3 & 4.3.0] Проблемка с QListWidget: смещение виджет  (Прочитано 4486 раз)
aix27249
Гость
« : Июнь 02, 2007, 12:40 »

Проблема такая: пишу код вроде этого:
Код:
for (int i=0; i<availableTags.size(); i++)
{
   ListLabel *L_item = new ListLabel(ui.listWidget, i);
   QListWidgetItem *__item = new QListWidgetItem(ui.listWidget);
   L_item->setText(availableTags[i].c_str());
   __item->setIcon(QIcon("icon.png"));
   ui.listWidget->setItemWidget(__item, L_item);
}

ListLabel - по сути QLabel (наследуется от него).
При запуске весь текст смещается влево, и наплывает на иконку (как будто ее и нет). При этом стоит изменить размеры listWidget (splitter подвинуть, к примеру) - все становится нормально (текст начинается от иконки).
Что я делаю не так? Мне бы достичь хотя бы одного состояния (с наплывом можно бороться добавлением пробелов или еще какого-нибудь прозрачного объекта)...
OC - Linux
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Июнь 02, 2007, 22:43 »

это баг Qt... я тоже видал подобное.
до первого ресайза размеры кривые остаются.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
aix27249
Гость
« Ответ #2 : Июнь 02, 2007, 23:49 »

Значит, надо репорт слать... А есть какие-нибудь способы обойти это?
Если текст писать непосредственно в QListWidgetItem - ничего не плавает... Но мне надо чтобы некоторые элементы выделялись (цветом, шрифтом - не суть важно), а как это делать через QListWidgetItem - честно говоря, не представляю (он вроде как не поддерживает RichText)
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Июнь 03, 2007, 00:34 »

надо переопределить делегат, а в нем метод отрисовки (один из paint...).
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
aix27249
Гость
« Ответ #4 : Июнь 03, 2007, 14:19 »

решил проблему через использование setFont, setForeground и setBackground. Всем спасибо!
Записан
mindz_eye
Гость
« Ответ #5 : Июнь 03, 2007, 14:49 »

setAutoFillBackground( true ); насколько я знаю это фиксает
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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