我用Qt5, 新建工程自動生成的dialog窗口。
在dialog.cpp中加了 setWindowFlags(Qt::FramelessWindowHint);
再在ui界面中設置qss,加入帶透明部分的背景圖片,就是用的background-image
這樣的話背景透明部分就是白的。
如果加上background-color:transparent; 背景透明部分就是黑的了
然後我上網查了一下加了兩句
setWindowOpacity(1);
setAttribute(Qt::WA_TranslucentBackground);
這樣的話就背景就完全透明,什麼圖片都沒有了。
我又查了很多其他方法試了都有問題。這個問題糾結兩天了。該怎麼辦。
這個最後用了點技巧。就是弄一個大標簽作為背景,拉到整個窗口大小。然後設置這個標簽的圖片就行了。
setWindowFlags(Qt::FramelessWindowHint);
setWindowOpacity(0.8);
QPixmap pixmap = QPixmap(":/5.jpg").scaled(this->size());
QPalette palette(this->palette());
palette.setBrush(QPalette::Background, QBrush(pixmap));
this->setPalette(palette);
試試這個,看看是不是你要的效果。