crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> setPalette не работает в linux
romanick
  опции профиля:
сообщение 30.6.2010, 11:06
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 9.5.2010
Пользователь №: 1700

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нашёл воттакой код для установки фонового изображения для виджета
QPalette pal;
pal.setBrush(this->backgroundRole(), QBrush(QImage("/etc/testapp/logo_back.bmp")));
setAutoFillBackground(true);
this->setPalette(pal);


Странно, но этот код работает корректно только под Windows. Под linux наблюдается вот что: картинка грузится, но тут же заменяется сплошным чёрным цветом. Причём ошибка плавающая. Вчера она сама собой исчезла, сегодня опять появилась.
Это происходит с любым изображением, даже если рисовать с помощью QPainter (стянуто у троллей)
QPixmap pm(20, 20);
    QPainter pmp(&pm);
    pmp.fillRect(0, 0, 10, 10, Qt::lightGray);
    pmp.fillRect(10, 10, 10, 10, Qt::lightGray);
    pmp.fillRect(0, 10, 10, 10, Qt::darkGray);
    pmp.fillRect(10, 0, 10, 10, Qt::darkGray);
    pmp.end();
    QPalette pal = palette();
    pal.setBrush(backgroundRole(), QBrush(pm));
    setAutoFillBackground(true);
    setPalette(pal);

тоже самое... В чём может быть проблема? Может быть дело в ОС? Как проверить?

openSUSE 11.2
Qt 4.6.3
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.1.2025, 16:00