目录
1. 现象
2. 解决方法
3. 附录
1. 现象
今天想在QWidget中贴一张png图片作为背景图,在Qt Designer 能显示,但运行时,死活不显示背景图片。样式表设置如下:
QWidget
{
border-image:url(:/untitled2/image/operpanel.png);
}
2. 解决方法
Qt Designer 中能显示证明图片的路径是正确的,不显示肯定其它问题导致的。经过排查,在QWidget所在类重写paintEvent函数,如下:
void Widget::paintEvent(QPaintEvent* event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
其中Widget为QWidget的子类,重新编译运行后就可以显示图片了。
3. 附录
- 图片不显示只对整个窗体的背景图时不显示,当图片贴在窗体上的某个部件如:作为按钮贴图,则不会存在这个问题。
- 以下的说通过勾选Qtcreator中的Shadow build方法都不起作用,即使起作用也是治标不治本,因为对很多项目Shadow build是必须勾选的。关于Shadow build具体作用,请自行问度妈。
Qt-ui界面的工具栏在设计时能出现,但是运行之后不显示的问题解决
解决Qt应用程序图标图片不显示,你可以试一试!