自定义类不生效问题(qt)

最近做项目,遇到自定义类设置样式表不生效问题。现将解决方法记录.

一. 背景描述

class Lane:public QWidget
{};

class Coil :public QWidget {

};

class WeightTable :public QWidget {

};

class MainWindow :public QWidget {

};

MainWindow作为主窗体包含Lane,Lane包含Coil,WeightTable.我仅仅想让Lane的边框设置成一下的样式:

QWidget#LaneClass{border:2px solid black;}

但是当我设置样式表时,无效果。

二. 解决方法

在Lane的构造函数中添加:

setAttribute(Qt::WA_StyledBackground);//设置样式生效

重写绘图事件函数

void Lane::paintEvent(QPaintEvent* event)
{
	Q_UNUSED(event);

	QStyleOption opt;
	opt.init(this);
	QPainter p(this);
	style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);

	QWidget::paintEvent(event);
}

你可能感兴趣的:(杂记,Qt,qt,java,开发语言)