我已经编写了一个包含多个列的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子代。我一直在运行时得到一个分段错误,没有更多的解释。在
有什么想法吗?在
我发现了setContextMenuPolicy函数:
然后,在headerMenu中:
^{pr2}$我倾向于解决方案n°2:编写继承QHeaderView的自己的类。 您的分段错误可能是由python/pyqt故障引起的? 您应该通过保持对DiceHeaders对象的引用来确保它存在。在
相关问题 更多 >
编程相关推荐