QT如何设置Qtreewidget行高

QT how to set QTreeWidget row height?

本文关键字:Qtreewidget 行高 设置 何设置 QT      更新时间:2023-10-16

我只是想将qtreewidget中的所有qtreewidgetItems的高度设置为指定的高度。我不知道从哪里开始,我在QT Designer或Qtreewidget Qt Spec网页中看不到任何问题。

有没有这样的技巧或示例?我猜这是我正在忽略的事情非常简单的事情。谢谢

无法提供MVC,因为我不知道从哪里开始对不起。

为了修改树项目行,

创建自己的自定义QItemDelegate并覆盖SizeHint((函数。

例如:

class ItemDelegate : public QItemDelegate
{
private:
    int m_iHeight;
public:
    ItemDelegate(QObject *poParent = Q_NULLPTR, int iHeight = -1) :
        QItemDelegate(poParent), m_iHeight(iHeight)
    {
    }
    void SetHeight(int iHeight)
    {
        m_iHeight = iHeight;
    }
    // Use this for setting tree item height.
    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
        QSize oSize = QItemDelegate::sizeHint(option, index);
        if (m_iHeight != -1)
        {
            // Set tree item height.
            oSize.setHeight(m_uHeight);
        }
        return oSize;
    }
};

然后在您的班级中,将Custome代表项目设置为树,

并根据需要更改行高:

class YourClass
{
private:
    QTreeWidget *m_poTreeWidget;
    ItemDelegate m_oItemDelegate;
public:
    void InitTree()
    {
        // do stuff
        m_oItemDelegate.SetHeight(30); // set row height
        m_poTreeWidget->setItemDelegate(&m_oItemDelegate);
        // ...
    }
};

也许您可以尝试在qtreewidget中添加以下样式表:

QTreeWidget::item{
    height:25px;//your preferred height
}