scrollArea設定背景顏色不影響子控制元件,終於找到解決辦法(轉載)
阿新 • • 發佈:2018-12-09
使QScrollArea的背景透明,乍看很easy,其實卻是一個目前百度上百不出來的問題;
最容易想到的,用qss:
scrollArea->setStyleSheet("background-color:transparent;");
但是這樣會使scrollArea所包含的所有子控制元件的背景也變成透明,大大不妥啊。。。
然後:
scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")
這個居然無效,大跌眼鏡。。。
然後百度,有人問,沒人答,再谷歌,靠,被牆了。。。
那麼,看QT原始碼吧,找到QScrollArea他爹QAbstractScrollArea。。。
有發現,QWidget *viewport()。。。就是這個擋路的子控制元件惹的事了,
擋路的傢伙,需要修理。。。這個是public的,再對這個設定一下qss就行了
所以,最後的解決辦法是2步,按順序來:
1:scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")
2:scrollArea->viewport()->setStyleSheet("background-color:transparent;");
好了,全透了,清爽了。