与今天的许多软件应用程序一样,我希望我的程序有一个无框的窗口,它仍然有一个阴影,使其更适合操作系统。第一步是将窗口标志设置为Qt::FramelessWindowHint
以删除框架。但更棘手的部分是在窗口外面添加一个投影。我选择将QGraphicsDropShadowEffect
添加到较小的基本小部件中,该小部件包含所有内容,并通过将属性QMainWindow
设置为true来使Qt::WA_TranslucentBackground
透明。
这对我来说似乎是一个很好的解决方案,直到我添加了QSizeGrip
才能启用窗口大小调整。每次调整窗口大小时,都会调用一个paint事件,并且需要重新计算QGraphicsDropShadowEffect
。这导致SUPER波动的大小调整和性能大打击。
QGraphicsDropShadowEffect
有哪些替代品有更好的效果?