Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何检查树视图';s项是否在委托中展开?_Qt - Fatal编程技术网

Qt 如何检查树视图';s项是否在委托中展开?

Qt 如何检查树视图';s项是否在委托中展开?,qt,Qt,我正在开发一个Qt应用程序,我想知道树视图的项是否在委托函数中展开 这是我的树状视图的委托 void roster_item_delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { /* H

我正在开发一个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()函数,但我不知道如何在委托函数中获得指针


谢谢。

您可以使用
选项
参数检查给定项目是否展开;以下是一个例子:

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);
}
void MyItemDelegate::paint(qPaint*painter,常数qStyleOption视图项和选项,常数QModelIndex和索引)常数
{
QStyle::State State=option.State;
如果((state&QStyle::state_Open)>0)
qDebug()