我正在尝试创建一个下方有阴影的无框窗口。当我们使用 Qt::FramelessWindowHint 标志创建无边框窗口时,它不包含阴影。 但是我们可以通过创建 QGraphicsDropShadowEffect 对象,然后通过 setGraphicsEffect 函数将其传递给窗口小部件,轻松地将阴影添加到子窗口小部件中。但这似乎不适用于 QMainWindow。请帮我在 Qt 中为无框窗口添加阴影...
最佳答案
您可以使用这个简单的技巧来做到这一点:
<小时/>将“QWidget”(例如小部件)添加到主窗口,并将主窗口上的所有内容移动到小部件。然后执行以下操作:
setAttribute(Qt::WA_TranslucentBackground); //enable MainWindow to be transparent
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect();
effect->setBlurRadius(5);
ui->widget->setGraphicsEffect(effect);
这似乎对我有用。请参阅:
关于qt - 如何在 Qt 中为无框窗口添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347776/