我有一个 QTableWidget,其中有一些列只是复选框(而有些不是)。我正在尝试实现一个功能,使得当用户右键单击与“仅复选框”列相关的标题项时,他们可以选择“取消所有”或“全选”。
到目前为止,我已经通过以下信号实现了 customContextMenu:
这会弹出一个上下文菜单,但我找不到任何方法来获取右键单击的标题的索引,我尝试过
一旦我成功获得了右键单击的标题索引,我就可以很容易地限制菜单仅在选择正确的索引时显示(那些只有复选框的列),所以这真的是另外一件事情。
我错过了什么?感谢您提前的帮助。
到目前为止,我已经通过以下信号实现了 customContextMenu:
self.headers = self.tblData.horizontalHeader()
self.headers.setContextMenuPolicy(Qt.CustomContextMenu)
self.headers.customContextMenuRequested.connect(self.show_header_context_menu)
self.headers.setSelectionMode(QAbstractItemView.SingleSelection)
这将导致以下上下文菜单调用:
def show_header_context_menu(self, position):
menu = QMenu()
deselect = menu.addAction("Clear Checked")
ac = menu.exec_(self.tblData.mapToGlobal(position))
if ac == deselect:
pass
#Actually do stuff here, of course
这会弹出一个上下文菜单,但我找不到任何方法来获取右键单击的标题的索引,我尝试过
self.headers.selectedIndexes()
和self.headers.currentIndex()
,但这些似乎只与实际表格选择有关,而不是标题。一旦我成功获得了右键单击的标题索引,我就可以很容易地限制菜单仅在选择正确的索引时显示(那些只有复选框的列),所以这真的是另外一件事情。
我错过了什么?感谢您提前的帮助。