我已经编写了具有多列的 QTreeView 的后代。我想创建一个弹出菜单,当用户右键单击列标题时会出现该菜单。为此,我尝试从 QTreeView 捕获信号,但 QTreeView 似乎没有在标题上发出信号。QTreeView.header() 可以。因此,我认为我必须:
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:使用我自己的 MousePressEvent 函数编写 QHeaderView 的后代,并将其用于我的标题。到目前为止,我未能成功地将新的头类连接到 QTreeView 后代。我在运行时不断收到分段错误,没有更多解释。
#in DiceView's init, where DiceHeaders is the QHeaderView descendant
self.setHeader(DiceHeaders())
有任何想法吗?