修改QTableView中的按键动作(PyQt4)

发布于 2024-11-18 19:13:14 字数 491 浏览 1 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兮子 2024-11-25 19:13:14

我之前使用过 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文