问题描述:
Qt加入背景图片,可运行时背景图片无法显示
这是Qt Designer中的界面,而在运行后背景是一片空白。
原因分析
我开始以为是我的qss代码出错了。当然代码开始也有一点问题,我没有把图片放进resource中,地址直接写的存储在电脑中的绝对地址。这个时候是在Designer界面中都无法出现背景图片。
*{
background:rgb(255, 255, 255);
background-image: url(:/new/prefix1/image2.jpeg);
}
但是修改代码后Designer界面已经可以出现背景图片,但运行后却始终无法出现,这时候我断定已经不是qss代码的问题,在网上找解决办法,发现是因为用的QWidget类,要重绘必须添加paintEvent。
解决方案:
只要在窗口对于的.cpp文件中添加以下代码即可
void LoginPage::paintEvent(QPaintEvent *e) { QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }