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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: setPalette не работает в linux  (Прочитано 3646 раз)
romanick
Гость
« : Июнь 25, 2010, 16:09 »

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

Странно, но этот код работает корректно только под Windows. Под linux наблюдается вот что: картинка грузится, но тут же заменяется сплошным чёрным цветом. Что не так?

openSUSE 11.2
Qt 4.6.3
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июнь 25, 2010, 16:32 »

попробуй установить для виджета setAutoFillBackground(true);
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
RoS
Гость
« Ответ #2 : Июнь 27, 2010, 21:06 »

и еще возможно

Код:
QPalette pal = this->palette();

//ваши операции + включая предыдущий комментарий
Записан
romanick
Гость
« Ответ #3 : Июнь 30, 2010, 10:00 »

Не помогло... И ошибка какая-то плавающая... То она есть, то её нет. Вчера вот, её не было, всё думаю, победил, а сегодня опять появилась...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Июнь 30, 2010, 12:00 »

Что за ошибка? Выложи побольше кода
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
romanick
Гость
« Ответ #5 : Июнь 30, 2010, 12:28 »

Код элементарен
Код:
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    QPalette pal = this->palette();
    pal.setBrush(this->backgroundRole(), QBrush(QImage("/home/romanick/test.png")));
    setAutoFillBackground(true);
    this->setPalette(pal);
    ui->setupUi(this);
}

Совершенно случайно запустил приложение не из под IDE (Qt Creator 2.0) а просто так, и о чудо! Всё заработало!!!
У меня нет слов... Какая, блин, связь казалось бы...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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