2009-08-13 55 views
5

我想在运行时更改QFrame背景,但是,我会从磁盘(图像)加载背景。 在QFrame中设置样式表不起作用,因为图像不在资源中。设置从磁盘加载的背景图像

一种方法是设置一个QPushButton图标,例如:

QPixmap img("/images/01.png"); 
ui.pushButton->setIcon(QIcon(img)); 

但是,一个QPushButton对我来说并不实用。我需要将其他东西放在QFrame中。

回答

5

从我的理解你的问题,你不想使用资源? 如果是这样的话,你可以这样做:

ui->frame->setFrameStyle(QFrame::StyledPanel); 
ui->frame->setStyleSheet("background-image: url(C:/test.jpg)"); 
+0

完美,这就是我一直在寻找。 我不知道可以这种方式应用背景。 Tkanks! – 2009-08-14 06:34:24

4

您也可以尝试这样的事:

QPalette pal; 
pal.setBrush(ui.frame->backgroundRole(), QBrush(QImage("/images/01.png"))); 
ui.frame->setPalette(pal); 
+0

即使对于QWidget也是如此。 – 2011-10-04 06:29:58