所以,我是PySide和QT的新手,想知道如何从QTextEdit标准上下文菜单中删除menuitem(无论是什么类型的(撤消,重做,复制,粘贴等))。 / p>
或者告诉我一种获取此上下文菜单的QMenu对象的方法。然后我可以将removeAction方法应用于menuitem。
TIA。
答案 0 :(得分:3)
要完全控制上下文菜单,请先使用QWidget.setContextMenuPolicy将上下文meu策略更改为Qt.CustomContextMenu
。然后将处理程序连接到QWidget.customContextMenuRequested信号。在处理程序中,您可以使用QTextEdit.createStandardContextMenu方法获取标准上下文菜单对象。
根据需要修改菜单,然后使用传递给信号处理程序的QPoint
显示它,如下所示:
menu.exec_(textedit.viewport().mapToGlobal(point))
答案 1 :(得分:2)
欢迎来到pyside! : - )
由于QTextEdit继承了QWidget,您可能希望将上下文菜单策略设置为自定义,然后提供自己的弹出菜单
我建议创建自己的自定义上下文的原因是因为qmenu不能作为qtextedit上的持久对象实际访问。它的构建基于点击时的上下文。我不确定是否有一种方法可以在显示之前重载以获取对qmenu的访问。我认为你能做的最好的就是定义你自己的完整。