找回密码
 立即注册
收起左侧

求救!小女子在Ui中利用改变样式表设置widget背景遇上了问题

8
回复
10285
查看
[复制链接]

尚未签到

来源: 2013-8-5 10:54:51 显示全部楼层 |阅读模式
3Qter豆
本人按照http://blog.csdn.net/jingzhesiye/article/details/7780313的方法设置背景,在widget.Ui中成功添加了背景,但运行后widget窗口没有背景的。问题困惑了我几天了,请求大师相救!!!如图
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

QImage image1; QPalette palette; image1.load("./back.png"); //QImage image2 = image1.scaled(1024,768); palette.setBrush(this->backgroundRole(),QBrush(image1)); this->setPalette(palette);照着搞 就ok!在构造函数中加上就行了
回复

使用道具 举报

累计签到:14 天
连续签到:1 天
2013-8-5 10:54:52 显示全部楼层
本帖最后由 zhulei 于 2013-8-5 16:17 编辑

QImage image1;
QPalette palette;
  image1.load("./back.png");
    //QImage image2 = image1.scaled(1024,768);
    palette.setBrush(this->backgroundRole(),QBrush(image1));
    this->setPalette(palette);照着搞 就ok!在构造函数中加上就行了
参与人数 1人气 +2 收起 理由
wins + 2 对我帮助很大!

查看全部评分总评分 : 人气 +2

回复

使用道具 举报

尚未签到

2013-8-5 11:07:47 显示全部楼层
如果这种方法不行,有没有其他加背景的方法??最好能给个教程链接
回复

使用道具 举报

尚未签到

2013-8-5 15:57:46 显示全部楼层
真诚请教,不用“改变样式表”的方法,还有没有其他方法???困惑啊!!!!!
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-8-5 16:34:04 显示全部楼层
要想QWidget可以显示背景图片,需要重新实现paintEvent()函数:
void Widget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
这样就可以设置样式表显示图片了。效果如下:


PS: 四楼的方法也可以。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参与人数 1人气 +2 收起 理由
wins + 2 对我帮助很大!

查看全部评分总评分 : 人气 +2

回复

使用道具 举报

尚未签到

2013-8-5 20:27:14 显示全部楼层
yafeilinux 发表于 2013-8-5 16:34
要想QWidget可以显示背景图片,需要重新实现paintEvent()函数:
void Widget::paintEvent(QPaintEvent *)
{ ...

太感谢你们了!这可能是中国最好的论坛了!!坛主对每一个问题都认真回答!!建议把设置背景的教程加到Qt快速入门系列教程目录中,这个太有趣味了,可以提高新生的积极性。
回复

使用道具 举报

尚未签到

2013-8-5 20:31:39 显示全部楼层
zhulei 发表于 2013-8-5 16:15
QImage image1;
QPalette palette;
  image1.load("./back.png");

谢谢你的帮助!本人感激不尽!!作为新手的我为论坛这种相互帮助的精神所感动!我会尽力把这种精神传递下去
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2014-4-10 15:15:21 显示全部楼层
用qss样式表怎么实现?
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2014-4-10 16:06:50 显示全部楼层
tao_jh00 发表于 2014-4-10 15:15
用qss样式表怎么实现?

用qss样式表怎么实现?5楼的方法很标准,重写paintevent后,就可以用样式表了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了