QT主窗體透明實現:
1)添加setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
2)添加setAttribute(Qt::WA_TranslucentBackground, true);
3)重寫paintEvent事件
備注:
三者缺一不可
1)當沒有設置Qt::WA_TranslucentBackground屬性為true時,會發現沒有半透明透明效果。
2)當窗體屬性沒有設置無邊框屬性,也就是Qt::FramelessWindowHint時,會發現沒有半透明透明效果。
3)當窗體屬性沒有設置無邊框屬性,且沒有重寫paintEvnet事件,會發現窗體變成黑色,哪怕是設置css樣式也是一樣。
當完成主窗體的半透明實現完,子控件的不透明和半透明,只需設置parent,剩余可以通過css樣式來控制。但是窗體的拖拉和邊框放大縮小需要自己取實現。