|
help2416的QT设计时样式表改背景图不生效问题
[复制链接]
本帖最后由 wowo8688 于 2015-4-11 13:25 编辑
本人qt工程里创建一个QWidget的模板,然后main.cpp用如下代码设置背景图片不显示,
Form1 f;
f.setStyleSheet("border-image: url(:/1234567/111.PNG);");
f.show();
同样使用修改界面Form1.ui设计样式表增加的背景图片然后main.cpp用如下代码,运行也不显示
Form1 f;
f.show();
而main.cpp用如下代码设置背景图片就显示,
QWidget q1;
q1.setStyleSheet("border-image: url(:/1234567/111.PNG);");
q1.show();
help2416开发板上qt显示和电脑端qt显示都是这样,这是c++类的原因还是QT软件框架原因,不明白下么是分析过程,给后来者参考
网上查阅的2个方法都可以,
删除头文件中的 Q_OBJECT,自己测试setStyleSheet生效
重载 paintEvent方法,自己测试setStyleSheet生效
网上查到的原因:
setStyleSheet()该函数只能用于设置有父窗口的子窗口的背景!如果一个窗口没有子窗口,则无法使用该函数来设置背景颜色或图片!!
http://blog.csdn.net/nrc_douningbo/article/details/5565212
最终确定是:setStyleSheet()函数原因,除了QWidget模板,使用QMainWindow 或 QDialog模板直接使用setStyleSheet都正常
但setStyleSheet()函数里是什么导致只能给带父的窗口改背景图,请高手解释下。
|
|