April 30, 2019, 1:16 p.m.

Автомаштабирование фонового изображения в Qt

Добрый день.
Создаю так фоновое изображение в программе, нооно не растянуто, а замощено.
Скажите пожалуйста, как его растянуть?

QPalette Pal(palette());
    //QImage background(":/Images/Images/splash-background.png");
    QImage background(":/Images/Images/ico-qr.png");
    Pal.setBrush(QPalette::Background, background);
    this->setAutoFillBackground(true);
    this->setPalette(Pal);
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
6

Так же фон можно задать так, но тоже не пойму как растянуть

this->setStyleSheet("background-image: url(:/Images/Images/ico-qr.png); ");
0

Добрый день.

Попробуйте так

QPixmap bkgnd(":/Images/Images/splash-background.png");
bkgnd = bkgnd.scaled(size(), Qt::IgnoreAspectRatio);
QPalette p = palette(); //copy current, not create new
p.setBrush(QPalette::Background, bkgnd);
setPalette(p);
0

Спасибо, заработало.

0

Но при растягивания приложения, рисунок не растягивается.
Нжно использовать сигнал на изменения размеров и делать новый фон?
Или может быть можно сделать так, чтобы рисунок растягивался вместе с приложением?

0

resizeEvent переопределите

void MainWindow::resizeEvent(QResizeEvent *evt)
{
QPixmap bkgnd(":/Images/Images/splash-background.png");
bkgnd = bkgnd.scaled(size(), Qt::IgnoreAspectRatio);
QPalette p = palette(); //copy current, not create new
p.setBrush(QPalette::Background, bkgnd);
setPalette(p);

QMainWindow::resizeEvent(evt); //call base implementation
}
0

Спасибо

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
NM
July 20, 2019, 10:59 a.m.
Nikolaj Morozov

C++ - Test 001. The first program and data types

  • Result:73points,
  • Rating points1
AD
July 19, 2019, 9:51 a.m.
Anastasia Dutchina

C++ - Test 001. The first program and data types

  • Result:53points,
  • Rating points-4
AD
July 19, 2019, 9:46 a.m.
Anastasia Dutchina

Qt - Test 001. Signals and slots

  • Result:57points,
  • Rating points-2
Last comments
July 21, 2019, 6:03 a.m.
Evgenij Legotskoj

да, наверное, 32-х разрядную поддержку уже давно поа было выкинуть. К слову, у вас много проектов под Android? Часто много где вижу вопросы о том, пишет ли кто-то вообще на Qt под мобильные си...
July 20, 2019, 2:41 p.m.
Andrej Jankovich

Очень полезная информация, увы уже выкинул поддержку 32 битных бедняг.
July 20, 2019, 9:31 a.m.
Mihailll

Вот так qDebug()<<"position:"<<event->scenePos();
July 20, 2019, 8:49 a.m.
Mihailll

Добрый день. Как можно узнать координату на графической сцене при отпускании клавиши мыши?
Now discuss on the forum
July 21, 2019, 6:07 a.m.
Evgenij Legotskoj

Если вы про этот метод QRectF MoveItem::boundingRect() const{ return QRectF (-30,-30,60,60);} То мне нужно было, чтобы координата (0,0) была по центру квадрата в его локальной си...
July 20, 2019, 11:04 a.m.
Mihailll

Так и с ресурсами работает QImage image(":/Images/Images/1.png");
July 19, 2019, 10:55 a.m.
Mihailll

Да. Там похоже каждое устройство генерирует свой токен, этот токен нужно как то получать и использовать в запросе. Но как это делать я пока не понял.
July 19, 2019, 9:31 a.m.
Mihailll

Добрый день. Повернул ListView в горизонтальное положение. При прокрутке эллементы выстраиваются у левого края окна. Как в QMK в ListView сделать центрирование по центру? ...
b
July 18, 2019, 2:27 a.m.
bbb116

Когда отрисовки не видно, объекты AreaSelector создаются (при нажатии и движении мышкой), но почему то не срабатывает paint() у них, хотя делаю update этой области. Причем эти области мо...
Looking for a Job?
5,000.00 руб. - 15,000.00 руб.
Дизайнер
Moskovskiy, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB