2013-02-05 139 views
2

我正在使用Qt 4.7,我從我的qrc設置QWidget的背景圖像CSS圖像。QWidget背景圖像適合

問題是圖像是高分辨率,只有它的左上部分顯示,我不能讓它縮小以適應。在CSS3中,我看到一個「background-size:contains」屬性,但我擔心它在Qt 4.7中不起作用。

無法找到使圖像適合窗口的方法。有任何想法嗎 ? 我不介意以編程方式進行。

感謝

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

+0

Thi s可能有點過時,但使用Qt 5.7,在我的paintEvent函數的末尾添加'QWidget :: paintEvent(e);'會使我的程序崩潰,並且不是必需的。 – JonSean

回答

4

您可以重新實現paintEvent

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

如果QFrame是相同的縱橫比,你可以使用CSS的QFrame類的圖像這個:

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

將圖像延伸到邊框的邊緣,是否有辦法保持寬高比? – Troyseph