擅长:python、mysql、java
<p>{我用中间的按钮点击了}左键。在</p>
<pre><code>class CQWebView(QtWebKit.QWebView):
app = None
def __init__(self, app):
QtWebKit.QWebView.__init__(self)
CQWebView.app = app
def mousePressEvent(self, event):
if type(event) == QtGui.QMouseEvent:
if event.button() == QtCore.Qt.LeftButton:
CQWebView.app.sendEvent(self, QtGui.QMouseEvent(event.type(), event.pos(), QtCore.Qt.MiddleButton, event.buttons(), event.modifiers()))
elif event.button() == QtCore.Qt.MiddleButton:
self.emit(QtCore.SIGNAL("linkClicked(const QUrl&)")) # Problem
elif event.button() == QtCore.Qt.RightButton:
self.emit(QtCore.SIGNAL("XXX")) # Example
</code></pre>
<p>我只需要在实例化时将QApplication的实例传递给自定义QWebView的实例:</p>
^{pr2}$
<p>这样,我用鼠标左键点击QWebView,然后用中间按钮人工点击它。<strong>问题是</strong>这样做会覆盖来自QWebView的linkClicked和urlChanged信号的默认行为。即使我可以发出这些信号,我也无法访问被单击的链接的地址,因为通过访问QWebView.url()只给我一个<strong>现在的</strong>问题,而不是未来点击的问题。在</p>
<p><strong>真的</strong>令人沮丧。在</p>