//1-不顯示默認三角形----來自網友的答案, 很好用。 //如果不想要展開折疊圖標(三角圖標),可以用以下代碼 { //隱藏根節點項前的圖標(展開折疊圖標) ui.treeWidget->setRootIsDecorated(false); //如果只是隱藏根點的展開折疊圖標而子節點保留,則只需要上面語句 ui.treeWidget->setStyleSheet("QTreeView::branch:has-children:!has-siblings:closed,\ QTreeView::branch:closed:has-children:has-siblings{border-image: none; image: none;}\ QTreeView::branch:open:has-children:!has-siblings,\ QTreeView::branch:open:has-children:has-siblings{border-image: none; image: none;}"); } //如果想把展開折疊圖標(三角圖標)換成自己的圖標,可以用以下代碼 { ui.treeWidget->setStyleSheet("QTreeView::branch:has-children:!has-siblings:closed,\ QTreeView::branch:closed:has-children:has-siblings{border-image: none; image: url(:/QtXmlTest/Resources/image/plus.png);}\ QTreeView::branch:open:has-children:!has-siblings,\ QTreeView::branch:open:has-children:has-siblings{border-image: none; image: url(:/QtXmlTest/Resources/image/minus.png);}"); } 原文鏈接:https://blog.csdn.net/jxbinwd/article/details/77507627
//2--自定義TreeWidgetItem 調用QTreeWidget::setItemWidget就可以了,並且,不會喪失QTreeWidgetItem跟鼠標事件的各默認聯動功能,依舊存在。
//3--子項Item與頂層TopLevelItem頂端對其 treeWidget->setIndentation(0); 在我們設置QTreeWidgetItem的QSS時候,默認Item和QTreeWidget左邊邊框之間是兩個部分。看起來很不好看。或者是,想設置當前激活的、或選中的Item的左邊框QSS時, Item的邊框效果,距離QTreeWidget的左邊框是有間距的,很不好看。 調用QTreeWidget::setIndentation(0), 然后設置不同層級Item的Padding-left,讓Text保持不同層級的效果。非常好的方案。