在实现弹幕应用程序的时候,需要让窗体的背景透明,但是其上的弹幕(基于QLable实现)则不是透明的。具体的方法如下。
在窗体类中,设置
//全屏
QRect deskRect = QApplication::desktop()->availableGeometry();
setFixedSize(deskRect.width(),deskRect.height());
setAttribute(Qt::WA_TranslucentBackground, true);//背景透明
setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);//去除菜单栏,并且始终处于顶部
经过测试:
在win10系统下,得到的窗体是透明的,并且透明部分可以正常响应鼠标事件。
在Mac系统下,得到的窗体也是透明的,但是透明部分无法正常响应鼠标事件。