gpt4 book ai didi

QTableView:dataChanged 事件清除正在编辑的单元格

转载 作者:行者123 更新时间:2023-12-04 18:37:16 32 4
gpt4 key购买 nike

使用 QTableViewQAbstractTableModel - 当模型发出 dataChanged对于正在编辑的单元格的事件,用户在单元格中键入的字符串(但未按 Enter 以“提交”编辑)将被删除。

示例:单击一个单元格,输入“123”,单元格仍处于编辑模式,等待更多文本,dataChanged发出并删除“123”,在编辑模式下留下一个空单元格。

有谁知道如何阻止这种行为,或者模型如何检测何时编辑单元格以防止 dataChanged为该单元引发的事件?

最佳答案

我有同样的问题。问题是,data()使用不同的 role 调用函数范围。用于展示 role==Qt::DisplayRole并在编辑时使用 role==Qt::EditRole 调用它.例如尝试改变

QVariant MyModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole)
return QString("Text to Edit");
}


QVariant MyModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole || role == Qt::EditRole)
return QString("Text to Edit");
}

这应该够了吧

关于QTableView:dataChanged 事件清除正在编辑的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436975/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com