QWebView的實現有一個標準的上下文菜單。我想改變它並創建我自己的 - 或在標準上下文菜單中添加「在新選項卡中打開」,然後將其連接到我的應用程序。怎麼做?添加項目到標準的QWebView上下文菜單
1
A
回答
2
您可以重新實現QWebView.contextMenuEvent
:
class WebView(QtWebKit.QWebView):
def __init__(self, parent=None):
super(WebView, self).__init__(parent)
self.newTabAction = QtGui.QAction('Open in new tab', self)
self.newTabAction.triggered.connect(self.createNewTab)
def createNewTab(self):
url = self.newTabAction.data()
print('create new tab:', url.toString())
def contextMenuEvent(self, event):
menu = self.page().createStandardContextMenu()
hit = self.page().currentFrame().hitTestContent(event.pos())
url = hit.linkUrl()
if url.isValid():
self.newTabAction.setData(url)
menu.addAction(self.newTabAction)
menu.exec_(event.globalPos())
如果你不想使用標準的上下文菜單,只要使用QtGui.QMenu()
創建自己的。
+0
謝謝,它適用於所有網頁。但我只想徘徊在鏈接上。 – VolArt
+0
@VolArt。我已經添加了鏈接測試。如果您發現有用的答案,請注意/接受。 – ekhumoro
+0
謝謝!我能夠成功地使用它來實現圖像的上下文菜單(通過用'imageUrl'替換'linkUrl')。 – Glutanimate
相關問題
- 1. 將項目添加到Windows中的桌面上下文菜單
- 2. 將菜單項添加到默認的上下文菜單
- 3. 將圖標添加到上下文列表中的菜單項
- 4. 將項目添加到上下文菜單
- 5. 添加新項目到Awesomium(Rigth點擊)上下文菜單
- 6. 將項目添加到Visual Studio上下文菜單
- 7. 如何將動態項目添加到上下文菜單?
- 8. 添加項目到Windows上下文菜單
- 9. 將項目添加到瀏覽器上下文菜單?
- 10. Android將項目添加到全局上下文菜單
- 11. 在FireFox中添加項目到上下文菜單
- 12. 將項目添加到系統上下文菜單
- 13. TinyMCE v4將自定義項目添加到上下文菜單
- 14. 添加多個項目到上下文菜單
- 15. 如何添加更多項目到窗口上下文菜單
- 16. 如何將新項目添加到Visual Studio 2010中的添加新項目到項目上下文菜單?
- 17. 將菜單項添加到上下文菜單
- 18. 將菜單項添加到上下文菜單在VS2008 DSL
- 19. 將自定義菜單項添加到Finder上下文菜單
- 20. 添加描述性菜單項到WPF上下文菜單
- 21. 右鍵單擊上下文菜單 - 添加新項目
- 22. DataGridView標準的上下文菜單
- 23. 將子菜單添加到上下文菜單條的特定菜單項
- 24. 添加菜單上下文菜單
- 25. 將項目添加到Google Chrome中的選項卡的上下文菜單
- 26. 如何將標準文本框命令添加到jqgrid上下文菜單
- 27. 將'Select All'上下文菜單項添加到默認的TextBox菜單項
- 28. Qt QTreeWidget上下文菜單:在其他o刪除項目下添加項目。
- 29. 將上下文菜單添加到UIImageView
- 30. 將項目添加到文件中的下拉菜單
你嘗試過什麼嗎?你能告訴我們一些代碼嗎? – jHilscher
你能爲我做些什麼,我可以做,... setContextMenuPolicy(0)(關閉)。如何創建新的contextmenu? – VolArt