我想知道如何在Qt中的小部件(不是主要小部件,比如标签)下绘制阴影。我是否需要使用样式表或者我会编写它(用C ++编写)?
答案 0 :(得分:5)
假设您有一个要从中投射阴影的表单和标签。
你可以这样使用QGraphicsDropShadowEffect:
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;
effect->setBlurRadius(5);
effect->setXOffset(5);
effect->setYOffset(5);
effect->setColor(Qt::black);
label->setGraphicsEffect(effect);
效果将是:
此效果的缺点是,如果将其应用于窗口小部件,其所有子窗口都将继承它。如果将效果应用于具有大量小部件的窗口小部件,则可能会出现问题,因为这可能会减慢渲染时间。但是对于你的例子来说,这非常好并且值得推荐。
有关Qt
中效果的详细信息,请查看QGraphicsDropShadowEffect
类,其中{{1}}也来自。{/ p>
答案 1 :(得分:0)
QLabel继承自QFrame。您可以使用它来创建阴影。