質問

長々と書きましたが、その子孫のQTreeView複数列あります。作りたいのポップアップメニューが表示される連絡、ユーザーを右クリックのカラムが含まれます。またシグナルを正しくとらえQTreeViewことがQTreeViewな光信号に含まれます。QTreeView.ヘッダ()。そうすることで、いかと思いなければならない:
1:接続のQHeaderViewの信号をポップアップ機能していを見つけることができず、信号機、シングルを右クリックしていましたsectionClicked,sectionHandleDoubleClicked,sectionDoubleClicked,sectionPressedない驚きのダブルクリック機能はなくシングルを右クリックがなくダブルを右クリック)

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マです。今日のセグメンテーション層にランタイム時において、まったく無くなります。

#in DiceView's init, where DiceHeaders is the QHeaderView descendant
self.setHeader(DiceHeaders())

そのアイデア?

役に立ちましたか?

解決

また、setContextMenuPolicy機能:

self.header().setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.header().customContextMenuRequested.connect(self.headerMenu)

そして、headerMenu:

def headerMenu(self, pos):
    globalPos = self.mapToGlobal(pos)
    menu = QMenu()
    menu.addAction("test item")
    selectedItem = menu.exec_(globalPos)
    if selectedItem:
        print "selected: ", selectedItem

他のヒント

なったと思いソリューションn°2:記自分のクラスを継承QHeaderView.ご.さらpython/pyqtお金の上限だけでしょうね。することができるようになりまDiceHeadersオブジェクトが存在するを参照します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top