解决Qt树形导航控件NavListView报错问题

admin2024-04-03  0

一个项目要用到树形控件,参考了一个开源项目。https://gitee.com/qt-open-source-collection/NavListView。本人环境为Qt 6.6.2编译后报错如下:

1、编译调试直接报错。

解决Qt树形导航控件NavListView报错问题,在这里插入图片描述,第1张
解决方案:

NavModel::TreeNode *node = (NavModel::TreeNode *)index.data(Qt::UserRole).toUInt();
替换成
NavModel::TreeNode *node = (NavModel::TreeNode *)index.data(Qt::UserRole).toULongLong();

2、点击导航菜单信息管理报错。

现象:
解决Qt树形导航控件NavListView报错问题,在这里插入图片描述,第2张
解决方案:

在collapse函数中,将refreshList移动到beginxxx和endxxx函数中间,如下所示。

void NavModel::collapse(const QModelIndex &index)
{
    TreeNode *node = listNode.at(index.row()).treeNode;

    if (node->children.size() == 0) {
        return;
    }

    node->collapse = !node->collapse;
    
    if (!node->collapse) {
        beginInsertRows(QModelIndex(), index.row() + 1, index.row() + node->children.size());
        refreshList();
        endInsertRows();
    } else {
        beginRemoveRows(QModelIndex(), index.row() + 1, index.row() + node->children.size());
        refreshList();
        endRemoveRows();
    }
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!