[Qt-interest] updating model data simultaneousy from a view and code

Kishore kitts.mailinglists at gmail.com
Thu Feb 26 12:13:13 CET 2009


On Thursday 26 Feb 2009 4:11:36 pm Kishore wrote:
> I am experiencing an issue with modifying my model data from a view. It
> generally works but i have one issue.
>
> I am in the situation where the model is continuously update in code. The
> update happens several times in a second. Now what i need is that when the
> user double clicks to update the value manually, the value to default to is
> the value that was set at that moment and then the user edits it (the model
> is still updated in the background) and hits 'enter'.
>
> What happens now is that the user is unable to edit values as the value is
> continuously reset to the value as updated in the background.
>
> Currently, my code looks something like this:
> QVariant PropertyModel::data(const QModelIndex& index, int role) const
> {
>         if(role == Qt::DisplayRole)
>             return m_values[index.row()];
>          else if(role == Qt::EditRole)
>             return m_values[index.row()];
>
>     return QVariant();
> }
>
> Commenting the lines:
>          else if(role == Qt::EditRole)
>             return m_values[index.row()];
> does not seem to help either. The only difference it makes is that the edit
> now does not know the datatype and defaults to QString but still clears out
> user input while being typed.
>
> How may i work this out?

It seems to work fine if the dataChanged() signal does not include the index 
that is being edited.
-- 
Cheers!
Kishore



More information about the Qt-interest-old mailing list