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