码迷,mamicode.com
首页 > 其他好文 > 详细

QWidget 直接派生类的样式表不起作用的解决办法

时间:2015-06-23 13:37:18      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:qt   样式表   

从 QWidget 派生一个窗口,使用 stylesheet 设置背景,在 designer 中可以看到效果,编译运行后,没有背景。原因比较简单,QWidget 的 paintEvent() 是空的,而样式表要通过 paint 被绘制到窗口中,我们需要重新写paintEvent() 函数,才能够真正实现继承。


//.h文件
// 增加 paintEvent() 的声明
protected:
	void paintEvent(QPaintEvent *); //重写paintEvent()

// .cpp 文件,假如类名为 Widget
//重写paintEvent()
void Widget::paintEvent(QPaintEvent *)
{
	QStyleOption opt;
	opt.init(this);
	QPainter p(this);
	style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

原文转自:http://blog.csdn.net/dbzhang800

QWidget 直接派生类的样式表不起作用的解决办法

标签:qt   样式表   

原文地址:http://blog.csdn.net/tennysonsky/article/details/46604415

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!