• 5705阅读
  • 1回复

关于QTableView的model数据更新疑问 [复制链接]

上一主题 下一主题
离线suese
 

只看楼主 倒序阅读 楼主  发表于: 2012-05-17
这个是代码
  1. QVariant STLineModel::data(const QModelIndex &index, int role) const
  2. {
  3.     if (!index.isValid())
  4.         return QVariant();
  5.     if (role == Qt::TextAlignmentRole) {
  6.         return int(Qt::AlignRight | Qt::AlignVCenter);
  7.     } else if (role == Qt::DisplayRole || role == Qt::EditRole) {
  8.         cout<<index.column()<<" "<<index.row()<<" "<<role<<" \t"<<flush;
  9.     }
  10.     return QVariant();
  11. }
输出如下:


[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]1 1 2   1 1 0   1 1 2   0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]2 3 0  

1.加载之后立刻读取两次,为啥

[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]2.双击进入编辑后又调用两次display的更新
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]1 1 2   1 1 0   1 1 2   0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]3.进入编辑状态后,会不断的刷新数据,而这个一般不需要吧,这段数据如果一直在编辑状态,会不断的刷下去
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]1 1 0   1 1 0   1 1 0  
[size=; font-size: 10pt,10pt]4.最后刷新一遍
[size=; font-size: 10pt,10pt]0 0 0   1 0 0   2 0 0   3 0 0   0 1 0   1 1 0   2 1 0   3 1 0   0 2 0   1 2 0   2 2 0   3 2 0   0 3 0   1 3 0   2 3 0   3 3 0  
[size=; font-size: 10pt,10pt]2 3 0  
[size=; font-size: 10pt,10pt]

[size=; font-size: 10pt,10pt]我只想要加载的时候读取一遍数据,编辑某一单元格的时候读取当前单元格的数据,完成编辑后刷新一下当前单元格的数据,对model不是太熟悉,不知该重载哪些函数
离线suese

只看该作者 1楼 发表于: 2012-05-28
木有人么
快速回复
限100 字节
 
上一个 下一个