我编写了一个具有多列的QTreeView后代。我想创建一个弹出菜单,当用户右键单击列标题时出现。我尝试从QTreeView中捕获信号来实现此目的,但是QTreeView似乎不会在标题上发出信号。QTreeView.header()会发出信号。因此,我认为我必须执行以下操作之一:
1:将QHeaderView的信号连接到弹出函数-我无法找到在单击右键时触发的信号-我尝试过sectionClicked、sectionHandleDoubleClicked、sectionDoubleClicked、sectionPressed(不惊讶双击函数没有捕获单击右键-但它们确实可以捕获双击右键)
有什么想法吗?
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())
有什么想法吗?