使QScrollArea的背景透明,而且不影響子控件

使QScrollArea的背景透明,乍看很easy,其實倒是一個目前百度上百不出來的問題;spa

最容易想到的,用qss:get

scrollArea->setStyleSheet("background-color:transparent;");源碼

可是這樣會使scrollArea所包含的全部子控件的背景也變成透明,大大不妥啊。。。百度

 

而後:scroll

scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")viewport

這個竟然無效,大跌眼鏡。。。view

 

而後百度,有人問,沒人答,再谷歌,靠,被牆了。。。vi

那麼,看QT源碼吧,找到QScrollArea他爹QAbstractScrollArea。。。co

有發現,QWidget *viewport()。。。就是這個擋路的子控件惹的事了,background

擋路的傢伙,須要修理。。。這個是public的,再對這個設置一下qss就好了

因此,最後的解決辦法是2步,按順序來:

1:scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")

2:scrollArea->viewport()->setStyleSheet("background-color:transparent;");

 好了,全透了,清爽了。

相關文章
相關標籤/搜索