QWidget背景图片在Qt Designer 中能显示但运行时不显示的解决方法

目录

1. 现象

2. 解决方法

3. 附录


1. 现象

        今天想在QWidget中贴一张png图片作为背景图,在Qt Designer 能显示,但运行时,死活不显示背景图片。样式表设置如下:

QWidget背景图片在Qt Designer 中能显示但运行时不显示的解决方法_第1张图片

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应用程序图标图片不显示,你可以试一试! 

你可能感兴趣的:(#,Qt平时遇到的疑难点,背景图片运行时不显示)