如何从QTextEdit上下文菜单中删除标准菜单项



所以,我在PySide和QT很新,想知道如何从QTextEdit标准上下文菜单中删除菜单项(不管什么样的(撤消,重做,复制,粘贴等)。

或者告诉我一种方法来获得这个上下文菜单的QMenu对象。然后我可以应用removeAction方法到菜单项。

TIA。

要完全控制上下文菜单,首先使用QWidget。setContextMenuPolicy将上下文菜单策略修改为Qt.CustomContextMenu。然后将处理程序连接到QWidget。customContextMenuRequested信号。在处理程序中,您可以使用QTextEdit获得标准上下文菜单对象。createStandardContextMenu方法。

修改您认为合适的菜单,然后使用传递给信号处理程序的QPoint显示它,如下所示:

menu.exec_(textedit.viewport().mapToGlobal(point))

欢迎来到pyside!: -)

由于QTextEdit继承了QWidget,您可能想将上下文菜单策略设置为自定义,然后提供您自己的弹出式菜单

http://www.pyside.org/docs/pyside/PySide/QtGui/QWidget.html PySide.QtGui.PySide.QtGui.QWidget.contextMenuPolicy

我建议创建您自己的自定义上下文的原因是因为qmenu并不是真正可以作为qtextit上的持久对象访问的。它是基于点击时的上下文动态构建的。我不确定有一个方法,你可以重载获得访问之前的qmenu显示。我认为你能做的最好的事情就是完全定义你自己。

最新更新