QT QTreeView/QTreeWidget 自帶拖放訓示器樣式不是很明顯,我想讓拖放訓示器明顯一些,找了好久沒有相關資料。
最終通過各種百度,各種關鍵字查找(QTreeView 美化,QTreeView 樣式,QTreeView 自繪,QTreeView QSS),各種檢視源碼。最終實作如圖效果。
QTreeWidget應該也可以使用的。
Qt就是好啊。遇到問題可以檢視源碼。然後通過源碼找到解決方案。或者找到搜尋關鍵字。
我這邊繼承了QTreeview。實作了一些自繪效果。旁邊三個按鈕是通過QStyledItemDelegate繪制的。
class CNodeTreeView : public QTreeView {
Q_OBJECT
public:
explicit CNodeTreeView(QWidget *parent = nullptr);
// 繪制下箭頭
virtual void drawBranches(QPainter* painter,
const QRect& rect,
const QModelIndex& index) const override;
// 繪制豎線
virtual void paintEvent(QPaintEvent *event) override;
// 繪制item之間的分割線
virtual void drawRow(QPainter *painter, const QStyleOpti