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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 30.6.2010, 11:19
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


А что они QPainter то на стеке создают ?

Сообщение отредактировал Алексей1153 - 30.6.2010, 11:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
romanick
  опции профиля:
сообщение 30.6.2010, 11:44
Сообщение #3


Студент
*

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

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




Репутация:   0  


>>А что они QPainter то на стеке создают ?
не понял...
вот ссылка где взято
http://qtdocs.narod.ru/4.1.0/doc/html/demo...dients-cpp.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 30.6.2010, 11:56
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


ммм, ну им виднее. Тогда не знаю
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
romanick
  опции профиля:
сообщение 30.6.2010, 12:19
Сообщение #5


Студент
*

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

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




Репутация:   0  


Совершенно случайно запустил приложение не из под IDE (Qt Creator 2.0) а просто так, и о чудо! Ошибка исчезла!!!
У меня нет слов... Какая, блин, связь казалось бы...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 30.6.2010, 12:43
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


может в дебажной версии косяк ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.6.2010, 13:00
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Алексей1153 @ 30.6.2010, 15:19) *
А что они QPainter то на стеке создают ?
потому-что он нужен только чтобы нарисовать на QPixmap и больше не нужен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
romanick
  опции профиля:
сообщение 30.6.2010, 13:29
Сообщение #8


Студент
*

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

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




Репутация:   0  


Цитата(Алексей1153 @ 30.6.2010, 13:43) *
может в дебажной версии косяк ?

собираю release - тоже самое.
Единственное отличие методов запуска в том что QtCreator цепляется к выводу, чего не происходит, если я запускаю прогу из ОС. Странно всё это...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.7.2024, 13:03