我已經寫了一個QTreeView的後代,它有多列。我想創建一個彈出式菜單,當用戶在列標題上單擊鼠標右鍵時出現。我試圖從QTreeView中捕獲信號,但QTreeView似乎沒有在信頭上發射信號。 QTreeView.header()會。因此,我相信我必須:
1:將QHeaderView的信號之一連接到彈出功能 - 我一直無法找到一個單擊右鍵觸發的信號 - 我試過了sectionClicked,sectionHandleDoubleClicked,sectionDoubleClicked,sectionPressed(不是驚訝雙擊功能沒有抓到一個右鍵 - 但他們趕上雙擊鼠標右鍵)右鍵單擊QTreeView裏面的QHeaderView
self.header().sectionClicked.connect(self.headerMenu)
self.header().sectionHandleDoubleClicked.connect(self.headerMenu)
self.header().sectionDoubleClicked.connect(self.headerMenu)
self.header().sectionPressed.connect(self.headerMenu)
,或者
2:寫QHeaderView的用我自己的MousePressEvent功能的後裔,並使用該爲我的標題。到目前爲止,我還沒有成功將新的頭類連接到QTreeView後代。我一直在運行時遇到Segmentation Fault,沒有更多的解釋。
#in DiceView's init, where DiceHeaders is the QHeaderView descendant
self.setHeader(DiceHeaders())
任何想法?