网上清一色的使用这两句,但我使用样式表并没有解决问题。反而被误导了,使用这种“广为流传”的方法会让scrollArea中的子控件背景也变成透明的。
ui->scrollArea->setStyleSheet("QScrollArea{background-color:transparent;}");
ui->scrollArea->viewport()->setStyleSheet("background-color:transparent;}");
那么正确的方式如下:
ui.scrollArea->viewport()->setStyleSheet(".QWidget{background-color:transparent;}");
很多控件都带有viewport,比如QTextEdit/QTableWidget/QScrollArea,有时候对这些控件直接处理的时候发现不起作用,需要对其viewport()设置才行,比如设置滚动条区域背景透明,需要使用scrollArea->viewport()->setStyleSheet("background-color:transparent;");而不是scrollArea->setStyleSheet("QScrollArea{background-color:transparent;}");