使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;");
好了,全透了,清爽了。