• 7312阅读
  • 4回复

QTableview中的事件? [复制链接]

上一主题 下一主题
离线yleesun
 

只看楼主 倒序阅读 楼主  发表于: 2009-01-08
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
当在处于编辑状态的QTableview中的一列中填上数据后,而没有使这一列退出编辑状态,这时如果保存,刚刚处于编辑状态的那列的值则没有被更新。只有当编辑完后,鼠标点击其他地方,或者按回车键,使列退出编辑状态,值才能被保存。
我想问问,如何自己触发一个事件,使处于编辑的列退出编辑状态?
离线chongxu
只看该作者 1楼 发表于: 2009-01-08
你需要看看这个帖子 http://qtcn.org/bbs/read.php?tid=14835
离线蛮蛮
只看该作者 2楼 发表于: 2009-01-08
参考一下
void QAbstractItemView::commitData ( QWidget * editor )  [virtual protected slot]

void QAbstractItemView::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint )  [virtual protected slot]
蛮蛮工作室
离线yleesun

只看该作者 3楼 发表于: 2009-01-09
谢谢两位的热心帮助。
离线yleesun

只看该作者 4楼 发表于: 2009-01-09
问题已经解决,感谢“蛮蛮”的帮助。
解决方法:
        QModelIndex curindex = currentIndex();
    QWidget *wdt = indexWidget(curindex);
    commitData(wdt);
原理就是,在保存之前,把当前单元格中内容更新到modle中去。
快速回复
限100 字节
 
上一个 下一个