当前位置:  开发笔记 > 开发工具 > 正文

如何告诉QTableWidget结束编辑单元格?

如何解决《如何告诉QTableWidget结束编辑单元格?》经验,为你挑选了2个好方法。

我正在显示一个弹出菜单,用于在QTableWidget中选择一些值.最低项是"修改列表"条目,当我选择它时,应自动出现一个新窗口,QComboBox应该消失,单元格返回Qt :: DisplayRole状态.

现在Qt拥有所有那些不错的API调用,QTableWidget.edit()而且QTableWidget.editItem(),我真正想要的是一个QTableWidget.endEditing(),最好不指定单元格的索引,尽管我可以使用这个调用得到它:

table.currentIndex()

...但我不知道我是否可以保证当前单元格始终是正在编辑的单元格.

是否有API来关闭这些编辑器?

弹出菜单



1> Nick Presta..:

QTableWidget从QWidget继承了19个公共插槽.其中一个是setDisabled(),它应该禁用该窗口小部件及其所有子窗口的输入事件.

我会尝试:

table.setDisabled( true );
table.setDisabled( false );

虽然你说它不适合你,但还有另一种方法:如果你不喜欢它(表格失去焦点,我相信),你可以尝试使用EditTriggers.例如:

table.setEditTriggers( QAbstractItemView::NoEditTriggers );



2> blameless75..:

table.setCurrentItem(None)对我有用。(如果您使用一些cellChanged / itemChanged插槽功能,请不要忘记阻塞信号。)

这是与PyQt。对于C ++,我认为将None替换为NULL。

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有