• 3834阅读
  • 2回复

求教:自定义委托中,视图如何知道自定义的editor已经编辑完成了 [复制链接]

上一主题 下一主题
离线wditoy
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-24
     在一个练习程序中,写了一个自定义委托中,自定义了 editor,我想知道视图如何知道editor已经编辑完成了 ,并调用setModelData(),
   我刚开始以为是editor->editingFinished() 信号起了作用,后来发现不去connect这个信号一样会关闭 editor, 调用setModelData()。
  后来以为是回车键或TAB键,就用event()屏蔽了这两个键,使它不向父窗口发送,发现还是一样会会关闭 editor, 调用setModelData()。

  后来,又考虑是不是editor失去焦点就会这样,去调试了一下,似乎也不是。始终搞不明白。

因此, 特来向各位请教!!


离线wditoy

只看该作者 1楼 发表于: 2012-05-19
读源码后明白的,有空来结一下贴
是通过委托的eventFilter,过滤回车键或TAB键,如果editor是QTextEdit的子类,就return true; 如果是其它,就emit commitData;
之前本来想用editor的event()屏蔽回车键或TAB键,但因为默认已经执行了editor:installEventFilter(委托);委托还是比edit先得到回车键或TAB键。

离线alexltr

只看该作者 2楼 发表于: 2012-05-20
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
快速回复
限100 字节
 
上一个 下一个