Контекстное меню заголовка таблицы PyQt

Я работаю над QTableView, отображающим подклассы пользовательских моделей из QAbstractTableModel в PyQt4. Мне нужно разрешить пользователю устанавливать, какой столбец он хочет использовать в качестве определенного типа данных. Для этого я хочу реализовать контекстное меню при щелчке по заголовку столбца, позволяя устанавливать его как эти типы. Я не уверен, как создать такое контекстное меню, которое может различать разные столбцы. Может кто-то указать мне верное направление?

Спасибо


person Andrew Ring    schedule 10.08.2012    source источник


Ответы (1)


Вы можете получить доступ к информации из представления заголовка. Вы можете сделать что-то вроде:

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))
person Eric Hulser    schedule 10.08.2012