像今天的许多软件应用程序一样,我希望我的程序有一个无框窗口,仍然有一个阴影以使其更适合OS。第一步是将窗口标志设置为Qt::FramelessWindowHint
以删除框架。但棘手的部分是在窗口外部添加投影。我选择将QGraphicsDropShadowEffect
添加到更小的基本小部件中,该小部件可以容纳所有内容,并通过将属性Qt::WA_TranslucentBackground
设置为true来使QMainWindow
变为透明。替代QGraphicsDropShadowEffect无框窗口的阴影
这似乎是一个很好的解决方案,直到我添加了一个QSizeGrip
来启用调整窗口大小。每次调整窗口大小时,都会调用绘画事件,并且需要重新计算QGraphicsDropShadowEffect
。这会导致SUPER震荡调整大小,并导致性能下降。
QGraphicsDropShadowEffect
有更好的表现吗?
显示您的代码,请 – eyllanesc
好吧,我编辑我的问题,希望能够遵循的准则更好。 – mrg95