如何检查树视图的项是否在委托中展开?

时间:2011-02-27 12:14:46

标签: qt

我正在开发一个Qt应用程序,我想知道树视图的项是否在委托函数中扩展。

这是我的树视图代表..

void roster_item_delegate::paint(QPainter *painter,
                                 const QStyleOptionViewItem &option,
                                 const QModelIndex &index) const
{
    /* How can I know whether this item is expanded or not in here? */
}

我认为可以使用树视图的指针和isExpanded()函数,但我不知道如何在委托函数中获取指针。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用option参数来检查展开的给定项目;下面是一个例子:

void MyItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const
{
    QStyle::State state = option.state;
    if ((state & QStyle::State_Open) > 0)
        qDebug() << index.data(0) << " item is expanded";

    QStyledItemDelegate::paint(painter, option, index);
}

希望这有帮助,尊重