pyside2 - 使用 Tab 键在 QTablewidget 中添加一行
问题描述
我正在使用 QTableWidget 开发一个食谱应用程序来添加食谱的成分。我使用按钮添加一行以插入新成分。这很好用,但像许多现有应用程序一样,当最后一行中的最后一列具有焦点时,我想使用 tab 键添加新行。我想我必须确定按下的 tab 键以及哪一列和哪一行具有焦点,但我不清楚如何做到这一点。
解决方案
最简单的方法是子类化表格小部件并实现该closeEditor()
函数,只要委托发出信号表明编辑器将要关闭,并提出关闭后要执行的下一步操作,就会调用该函数。
使用 tab 键,使用了EditNextItem
提示,所以检查那个标志就足够了,确保当前索引是否是最后一行的最后一列,然后在调用基本实现方法之前添加一行:
class TableWidget(QtWidgets.QTableWidget):
def closeEditor(self, editor, hint):
if hint == QtWidgets.QAbstractItemDelegate.EditNextItem:
current = self.currentIndex()
if (current.row() == self.rowCount() - 1 and
current.column() == self.columnCount() - 1):
self.insertRow(self.rowCount())
super().closeEditor(editor, hint)
推荐阅读
- python - 如何将 Excel 工作簿中的多个电子表格连接到 Pandas 数据框中?
- r - 如何检查我的 Spark 集群是否正常工作?
- recursion - 如何使用迭代而不是递归来编写以下函数?
- c - liblsoda:使用带有 gcc 的 OpenMP 在 C 中线程化 LSODA ODE 求解器
- jquery - 将文本添加到输入
- jupyter-notebook - 为什么 df.to_string 打印出奇怪的标签?
- python - 在 TextInput 小部件中设置单个单词的样式
- php - 戳之间
- 和WordPress
- firebase - 如何从firestore中删除每个集合
- r - 同质化作为单独参数传递给 R 函数的向量、列表和值