2012-08-10 56 views
0

我正在使用QTableView顯示PyQt4中QAbstractTableModel的自定義模型子類。我需要能夠允許用戶設置他們想要作爲特定類型數據的列。爲了實現這一點,我想在點擊列標題時實現上下文菜單,並允許選項將其設置爲這些類型。我不知道如何創建一個可以區分不同列的上下文菜單。任何人都可以將我指向正確的方向嗎?PyQt Table Header上下文菜單

謝謝

+0

[右鍵點擊獲取標題列於QTableWidget的(可能重複http://stackoverflow.com/questions/11888635/getting-header-column-on-right-click- for-qtablewidget) – ekhumoro 2012-08-10 23:52:07

+0

另一個重複在[如何獲取QTableView頭中的點擊右鍵上下文菜單?](http://stackoverflow.com/questions/7782071/how-can-i-get-right-click-上下文菜單點擊在qtableview標題) – 2012-11-25 16:53:12

回答

3

您可以從標題視圖中訪問信息。你可以這樣做:

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)) 
+0

謝謝@ eric-hulser那做的伎倆。 – aring 2012-08-14 18:17:46