我正在研究一个 QTableView,它在 PyQt4 中显示来自 QAbstractTableModel 的自定义模型子类。我需要能够允许用户设置他们想要作为特定类型数据的列。为了实现这一点,我想在单击列标题时实现一个上下文菜单,允许选项将其设置为这些类型。我不确定如何创建这样的上下文菜单,它可以区分不同的列。谁能指出我正确的方向?
谢谢
我正在研究一个 QTableView,它在 PyQt4 中显示来自 QAbstractTableModel 的自定义模型子类。我需要能够允许用户设置他们想要作为特定类型数据的列。为了实现这一点,我想在单击列标题时实现一个上下文菜单,允许选项将其设置为这些类型。我不确定如何创建这样的上下文菜单,它可以区分不同的列。谁能指出我正确的方向?
谢谢
您可以从标题视图访问信息。您可以执行以下操作:
def __init__( self, parent ):
# initialize class
...
# setup menu options
header = self.ui.tree.header()
header.setContextMenuPolicy(Qt.CustomContextMenu)
header.customContextMenuRequested.connect( self.showHeaderMenu )
def showHeaderMenu( self, point ):
column = self.ui.tree.header().logicalIndexAt(point.x())
# show menu about the column
menu = QMenu(self)
menu.addAction('Hide Column')
menu.popup(header.mapToGlobal(pos))