I am wondering how I would draw a shadow under a widget (which isn't the main widget, say, a label.) in Qt. Would I neeed use a stylesheet or would I code it (in C++)?
问问题
8092 次
2 回答
9
假设你有一个表格和一个标签,你想从中投下阴影。
您可以像这样使用QGraphicsDropShadowEffect:
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;
effect->setBlurRadius(5);
effect->setXOffset(5);
effect->setYOffset(5);
effect->setColor(Qt::black);
label->setGraphicsEffect(effect);
效果是:
这种效果的缺点是,如果你将它应用到一个小部件上,它的所有子级都会继承它。如果您将效果应用于具有大量小部件的小部件,这可能会出现问题,因为它可能会减慢渲染时间。但是对于您的示例,这非常好并且推荐。
有关效果的更多信息,Qt
请查看同样派生自的QGraphicsEffect类。QGraphicsDropShadowEffect
于 2014-10-11T15:59:34.950 回答
0
QLabel 继承自QFrame。您可以使用它来创建阴影。
于 2012-09-08T08:54:48.783 回答