剛開始我只是用簡單的qss語句設(shè)置QScrollBar,居然完全不起作用!
代碼如下:
m_view = new QListView(this); m_view->setGeometry(20,25,w-40,h-50); m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); m_view->setFrameShape(QFrame::NoFrame); // 沒有效果 //m_view->setStyleSheet("QScrollArea{background-color:transparent;}" // "QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical{width:0;height:0;}" // "QScrollBar::handle:vertical{image:url(:/ClassBlackBoard/Resources/ClassBlackBoard/Slider.png)}"); m_view->verticalScrollBar()->setStyleSheet("QScrollBar::handle:vertical{image:url(:/ClassBlackBoard/Resources/ClassBlackBoard/Slider.png)}");// 沒有效果苦思冥想都不知道該怎么辦!準(zhǔn)備自己重寫QListView的時候,在別人指導(dǎo)下,重新寫了一下qss代碼: m_view->setStyleSheet("QScrollBar:vertical/ { / width:8px; / background:rgba(0,0,0,0%); / margin:0px,0px,0px,0px; / padding-top:9px; / padding-bottom:9px; / } / QScrollBar::handle:vertical / { / width:8px; / background:rgba(0,0,0,15%); / border-radius:4px; / min-height:20; / } / QScrollBar::handle:vertical:hover / { / width:8px; / background:rgba(0,0,0,25%); / border-radius:4px; / min-height:20; / } / QScrollBar::add-line:vertical / { / height:9px;width:8px; / border-image:url(:/images/a/3.png); / subcontrol-position:bottom; / } / QScrollBar::sub-line:vertical / { / height:9px;width:8px; / border-image:url(:/images/a/1.png); / subcontrol-position:top; / } / QScrollBar::add-line:vertical:hover / { / height:9px;width:8px; / border-image:url(:/images/a/4.png); / subcontrol-position:bottom; / } / QScrollBar::sub-line:vertical:hover / { / height:9px;width:8px; / border-image:url(:/images/a/2.png); / subcontrol-position:top; / } / QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical / { / background:rgba(0,0,0,5%); / border-radius:4px; / }");居然有效果了!
然后逐句刪掉多余的qss語句,發(fā)現(xiàn)原來是沒有給定寬高值。。。
最后代碼如下:
m_view = new QListView(this); m_view->setGeometry(20,25,w-40,h-50); m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); m_view->setFrameShape(QFrame::NoFrame); m_view->setItemDelegate(new ItemDelegate(this)); m_view->setFocusPRoxy(this); m_view->setStyleSheet("QScrollBar:vertical/ {/ width:15px;/ background:rgba(0,0,0,0);/ padding-bottom:9px; / background-position: right;/ } / QScrollBar::handle:vertical / { / width:15px; / border-image:url(:/ClassBlackBoard/Resources/ClassBlackBoard/Slider.png); / } / QScrollBar::add-line:vertical/ {/ height:0px;width:0px;/ subcontrol-position:bottom;/ }/ QScrollBar::sub-line:vertical/ {/ height:0px;width:0px;/ subcontrol-position:top;/ }");
|
新聞熱點
疑難解答