程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> qt-Qt中設置窗口背景透明

qt-Qt中設置窗口背景透明

編輯:編程綜合問答
Qt中設置窗口背景透明

我用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);

試試這個,看看是不是你要的效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved