如何在QTreeWidget / QTreeView中获取行高

时间:2012-07-06 04:48:44

标签: qt qtreewidget

我只想从QTreeWidgetItem获取行高。我搜索了很多,但没有任何内容。

我想要做的是调整包含QTreeWidget的换行小部件的大小,以使树中的所有行都可见(或者说,它将是一个无底的扩展小部件)。

sizeHint将始终返回-1,因为我从未设置它们。

4 个答案:

答案 0 :(得分:1)

int QTreeWidget::rowHeight(const QModelIndex& index) const

应该足够了。

答案 1 :(得分:1)

QTreeWidget方法的结果高度(使用给定的QTreeWidgetItem调用)可以解决问题(适用于QTreeWidget - 这不适用于QTreeView当然):

  QRect QTreeWidget::visualItemRect (const QTreeWidgetItem* item) const;

答案 2 :(得分:0)

我相信这可以通过调整QTreeWidget上的sizePolicy和包含QTreeWidget本身的包装器小部件来解决。

即。将垂直属性的大小政策更改为Expanding

答案 3 :(得分:-1)

在Designer中将QTreeView提升为CTreeView中定义的某个ctreeview.h类,如下所示:

#ifndef CTREEVIEW_H
#define CTREEVIEW_H

#include <QTreeView>

class CTreeView : public QTreeView
{
    Q_OBJECT

public:
    explicit CTreeView(QWidget *parent = Q_NULLPTR) : QTreeView(parent) {}
    // or 
    // using QTreeView::QTreeView; // Use inherited constructors (C++11)

    int rowHeight(const QModelIndex &index) const {
        return QTreeView::rowHeight(index);
    }
};

#endif // CTREEVIEW_H