LINUX.ORG.RU

Qt 4.6.0, QPixmap, scaledToWidth


0

0

Этот код вызывается несколько раз с разными «thumbname», файлы с такими именами 100% существуют

    QPixmap pixmap(thumbname);
    QIcon icon(pixmap.scaledToWidth(iconSize().width(), Qt::SmoothTransformation));
    QListWidgetItem *item = new QListWidgetItem(icon, filename);
    addItem(item);

Результат - результат правильный - несколько иконок с текстом в QListWidget.

Если же я удалю Qt::SmoothTransformation (по умолчанию станет Qt::FastTransformation),

Все иконки будут одинаковыми - как в первом файле, но при выборе иконка меняется, но опять у всех одинаковые.

WTF?

Это в Qt 4.6.0. В Qt 4.5.2 было нормально.

☆☆

То-есть вы несколько раз вызываете этот метод с разными thumbname, и в зависимости от флага transformation иконки становятся одинаковыми независимо от содержимого thumbname? Попробуйте в этом же методе поставить:

QPixmap scaledPixmap = pixmap.scaledToWidth(...);
scaledPixmap.save(...);

или

icon.pixmap(someSize).save(...);

Чтобы посмотреть где теряются картинки. Если не теряются - возможно это баг с кешированием картинок в QIcon.

Dendy ★★★★★
()

очевидно лага кеша. у меня с переходом на 4.6 много чудес наблюдается, сырой он.

erfea ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.