我有一个QTableWidget,其列数仅为复选框(有些不是)。我正在尝试实现一项功能,以便当用户右键单击与“仅限复选框”列相关的标题项时,将显示“取消全部选中”或“全部选中”选项。QTableWidget右键单击获取标题列
到目前为止,我已经成功地实现通过以下信号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()
,但这些似乎只涉及到实际的表格选择,而不是标题。
一旦我设法得到右键单击的标题索引,我可以很容易地限制菜单显示,只有当选择了正确的索引(那些只有复选框的列),所以这是一个额外的事情,真的。
我错过了什么?预先感谢您的帮助。
完美。我知道我错过了一些东西!万分感谢! – WilcoRogers 2012-08-10 01:05:08