Qt QWidget背景图像匹配

Qt QWidget背景图像匹配,qt,background-image,qwidget,Qt,Background Image,Qwidget,我正在使用Qt4.7,我将QWidget的背景图像CSS设置为来自qrc的图像 问题是图像的分辨率很高,只显示了左上角,我无法将其缩小到合适的范围。在CSS3中,我看到了一个“backgroundsize:contain”属性,但我担心它在Qt4.7中不起作用 找不到使图像适合窗口的方法。有什么想法吗? 我不介意用编程的方式来做 谢谢 已解决:您可以重新实现paintEvent: void Widget::paintEvent(QPaintEvent *e) { QPainter pai

我正在使用Qt4.7,我将QWidget的背景图像CSS设置为来自qrc的图像

问题是图像的分辨率很高,只显示了左上角,我无法将其缩小到合适的范围。在CSS3中,我看到了一个“backgroundsize:contain”属性,但我担心它在Qt4.7中不起作用

找不到使图像适合窗口的方法。有什么想法吗? 我不介意用编程的方式来做

谢谢


已解决:

您可以重新实现
paintEvent

void Widget::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);
    painter.drawPixmap(0, 0, QPixmap(":/new/prefix1/picture001.png").scaled(size()));
    QWidget::paintEvent(e);
}

如果QFrame与图像的纵横比相同,则可以在QFrame上使用CSS,如下所示:

QFrame
{
   border-image: url(:/images/myimage.png) 0 0 0 0 stretch stretch;
   border-width: 0px;
}

将图像拉伸到边界的边缘,有没有办法保持纵横比?这可能有点过时,但使用Qt5.7,添加了
QWidget::paintEvent(e)
在我的paintEvent函数结束时使我的程序崩溃,这是不必要的。链接已断开。我希望你在这里添加解决方案作为答案。。。