相关疑难解决方法(0)

QAbstractProxyModel 不更新 dataChanged() 信号

这是我setData的源模型:

bool TreeModel::setData(const QModelIndex& index, const QVariant& value, int role)
{
    if (!index.isValid() || role != Qt::EditRole)
        return false;

    TreeItem* item = static_cast<TreeItem*>(index.internalPointer());
    item->setData(index.column(), value);
    emit dataChanged(index, index);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我将dataChanged信号从源模型连接到dataChanged代理模型的信号,但显示代理模型的表视图只有在我点击它时才会更新。在这种情况下会出现什么问题?我应该以某种方式dataChanged在代理模型中手动发出信号吗?

来自模型的数据:

QVariant TreeModel::data(const QModelIndex& index, int role) const
{
    if (!index.isValid() || role != Qt::DisplayRole)
        return {};

    TreeItem* item = static_cast<TreeItem*>(index.internalPointer());
    return item->dataAt(index.column());
}
Run Code Online (Sandbox Code Playgroud)

来自 TreeItem:

QVariant TreeItem::dataAt(int n) const
{
    if (n < m_data.size())
        return m_data[n];
    else
        return {}; …
Run Code Online (Sandbox Code Playgroud)

c++ qt

6
推荐指数
1
解决办法
1673
查看次数

标签 统计

c++ ×1

qt ×1