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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как задать фоновый рисунок виджету?  (Прочитано 4782 раз)
Wizard
Гость
« : Октябрь 19, 2009, 09:49 »

Как задать фоновый рисунок форме?  пытался через QPalette , что то не вышло (

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);   
   MainWindow *wndMain = new MainWindow();
   
        QPalette pal;
        pal.setBrush(QPalette::Window, QBrush(QPixmap("/storage card/Image/back.jpg")));
   wndMain->setPalette(pal);

   wndMain->showMaximized();
Записан
SABROG
Гость
« Ответ #1 : Октябрь 19, 2009, 11:44 »

Попробуй использовать сначала картинку .png формата, для .jpg нужно плагин таскать.

Код
C++ (Qt)
  QPalette pal;
  pal.setBrush(wndMain->backgroundRole(), QBrush(QPixmap("/storage card/Image/back.jpg")));
  wndMain->setPalette(pal);
 

Как вариант:

Код
C++ (Qt)
wndMain->setStyleSheet("background-image: url(/storage card/Image/back.jpg"););
 
« Последнее редактирование: Октябрь 19, 2009, 11:55 от SABROG » Записан
Wizard
Гость
« Ответ #2 : Октябрь 19, 2009, 16:32 »

SABROG, спс работает )))
Записан
voral
Гость
« Ответ #3 : Октябрь 15, 2010, 23:24 »

Попробуй использовать сначала картинку .png формата, для .jpg нужно плагин таскать.
Зделал так:
Код
C++ (Qt)
VWelcome::VWelcome(QWidget *parent)
:QDialog(parent)
{
QPalette pal;
pal.setBrush(this->backgroundRole(), QBrush(QPixmap(":/res/welcome.png")));
this->setPalette(pal);
this->laMain = new QVBoxLayout();
this->setLayout(this->laMain);
this->btNew = new QPushButton(tr("New"));
this->laMain->addWidget(btNew,0);
}
 
В результате при создании и при ресайзе окна мелькает правильный фоню А потом все заливается черно-серым градиентом.
Ни как не могу понять чем дело.
Пытался сделать через таблцу стилей (this->setStyleSheet(...)) фон у кнопок появляется вместо формы.
В прочем хотелось бы разобраться именно с первым вариантом
Записан
voral
Гость
« Ответ #4 : Октябрь 15, 2010, 23:53 »

Такс градиент появляется на КДЕ4 в IceWM все ок.
Записан
voral
Гость
« Ответ #5 : Октябрь 16, 2010, 00:15 »

Решил проблему
Код
C++ (Qt)
VWelcome::VWelcome(QWidget *parent)
:QDialog(parent)
{
this->centralWidget =  new QWidget(this);
QPalette pal;
pal.setBrush(this->centralWidget->backgroundRole(), QBrush(QPixmap(":/res/welcome.png")));
this->centralWidget->setPalette(pal);
this->centralWidget->setFixedSize(348,247);
this->centralWidget->move(0,0);
this->centralWidget->setAutoFillBackground(true);
this->setFixedSize(348,247);
this->laMain = new QVBoxLayout();
this->centralWidget->setLayout(this->laMain);
this->btNew = new QPushButton(tr("New"));
connect(this->btNew,SIGNAL(clicked()),this,SLOT(Test()));
this->laMain->addWidget(btNew,0);
}
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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