Qt小部件在Linux上模糊的半透明背景



使用小部件,c++和Linux需要某种东西:这个

但没有边框和自定义标题。

搜索了几天,但一无所获。现在,有一个小部件与setWindowFlags(Qt::FramelessWindowHint);和一个和平的半透明背景。我怎么模糊它?这有可能吗?

我不认为Qt可以做到这一点,模糊可以使用https://doc.qt.io/qt-5/qgraphicsblureffect.html,但它只局限于Qt绘制的小部件,而底层背景不是,即使你设法使你的小部件透明或半透明。绘制背景始终是操作系统(或窗口管理器)的业务,而不是您的应用程序Qt的业务。

你当然可以尝试做一些极端的黑客行为,比如在你的窗口显示之前抓取活动屏幕(参见如何使用Qt捕获当前屏幕图像?)然后获得图像的某些矩形内容,这对应于你的窗口的背景,然后将其模糊到你的应用程序的背景,然后每次你移动或调整窗口大小时更新它…但无论如何,即使你做到了这一点,这个背景将是静态的,而不是动态的。

我建议你放弃模糊背景的想法,把这个功能留给窗口管理器和操作系统。

最新更新