在使用QTreeWidget時,默認是帶有虛線的,如下圖所示:
現在需要將這些節點之間的虛線去掉,可採用兩種方式,一種是在代碼中添加控制項的樣式,另外一種是在qtcreator中直接設置樣式。
第一種:qtcreator中設置樣式:
右鍵該控制項,選擇change styleSheet…菜單,然後進入到樣式編輯界面,添加如下代碼:
QTreeView::branch {image:none;}
點擊OK之後,就可以看到效果,此前的虛線已經沒有了。
第二種:直接在代碼中添加樣式:
代碼如下:
treeWidget->setStyleSheet("QTreeView::branch {image:none;}");
這裡的treeWidget指的就是當前QTreeWidget對象了。
貼出源碼圖片:
編譯運行之後就可以看到效果了。
接下來,再介紹一下,只設置頂級節點無虛線,子節點有虛線的方法:
同樣可以採用在源碼裡設置樣式和qtcreator中設置樣式兩種方法,這裡就不再贅述,將設置的參數簡單介紹一下。
在代碼中添加如下方法:
treeWidget->setRootIsDecorated(false);
qtcreator中點擊qtreewidget控制項,在右邊的設置屬性裡找到QTreeView那欄,將rootIs Decorated 複選框,不要勾選,即可實現該效果。
最後再送上設置item不同狀態下顯示背景色的代碼,設置方法同上:
源碼中設置:
treeWidget->setStyleSheet(
"QTreeView::item:hover{background-color:rgb(0,255,0,50)}"
"QTreeView::item:selected{background-color:rgb(255,0,0,100)}"
);
在樣式設置界面,添加如下兩句:
QTreeView::item:hover{background-color:rgb(0,255,0,50)}
QTreeView::item:selected{background-color:rgb(255,0,0,100)}