QWidget背景图像适合

时间:2013-02-05 09:20:07

标签: qt background-image qwidget

我正在使用Qt 4.7,我将qWidget的背景图像CSS设置为来自qrc的图像。

问题是图像是高分辨率,只有它的左上部分显示,我无法缩小以适应。在CSS3中,我看到了一个“background-size:contain”属性,但我担心它在Qt 4.7中不起作用。

无法找到使图像适合窗口的方法。有任何想法吗 ? 我不介意以编程方式进行。

由于

已解决: http://www.developer.nokia.com/Community/Wiki/Archived:Load,_Resize_image_and_set_background_image_in_Qt_application/widget

2 个答案:

答案 0 :(得分:4)

您可以重新实施paintEvent

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

答案 1 :(得分:4)

如果QFrame与图像的宽高比相同,您可以在QFrame上使用CSS,如下所示:

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