修改QTableView中的按键动作(PyQt4)
我正在使用 QTableView 类来显示数据库中的表。我想允许用户仅使用键盘编辑表格。
但是,该类的默认行为是在 2 次编辑后将焦点重置到表的起始索引,即我编辑一个单元格,按“向下”键,编辑该单元格,再次按“向下”键,此时表格失去焦点;下次我按向下键时,表格的第一个单元格将获得焦点。
我应该查看类的哪些方法来修改此行为?
我正在使用单项选择模式:
self.entryView = QTableView()
self.entryView.setModel(self.logModel)
self.entryView.setItemDelegate(LogDelegate(self))
self.entryView.setSelectionMode(QTableView.SingleSelection)
self.entryView.setSelectionBehavior(QTableView.SelectItems)
I'm using the QTableView class to display a table from a database. I want to allow the user to edit the table using the keyboard only.
However, the default behavior of the class is to reset the focus to the starting index of the table after 2 edits, ie. I edit a cell, press the "Down" key, edit the cell, again press the "Down" key, at which point the table loses focus; next time I press the down key, the first cell of the table gains focus.
What methods of the class should I look at to modify this behavior?
I'm using the single item selection mode:
self.entryView = QTableView()
self.entryView.setModel(self.logModel)
self.entryView.setItemDelegate(LogDelegate(self))
self.entryView.setSelectionMode(QTableView.SingleSelection)
self.entryView.setSelectionBehavior(QTableView.SelectItems)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我之前使用过 TreeWidget 所以它们应该是相似的。修改后通过调用 setCurrentItem() 方法显式指定“活动项”怎么样?这样你就可以始终保持正确的焦点
I used TreeWidget before so they should be similar. How about explicitly specifying the "active item" by calling setCurrentItem() method after modification? in this way you can always have the correct focus