我正在开发一个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()函数,但我不知道如何在委托函数中获取指针。
谢谢。
答案 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);
}
希望这有帮助,尊重