2010-07-06 34 views
7

Tôi đang mở một trang trong QtWebView (trong PyQt nếu có vấn đề) và tôi muốn mở tất cả các liên kết trong trình duyệt mặc định của hệ thống. I E. một nhấp chuột vào một liên kết không nên thay đổi trang web trong QtWebView nhưng nó sẽ mở nó bằng trình duyệt mặc định. Tôi muốn người dùng không thể thay đổi trang web trong QtWebView.nhấp vào liên kết bắt trong QtWebView và mở trong trình duyệt mặc định

Tôi có thể làm như thế nào?

Cảm ơn, Albert

Trả lời

9

Đó có phải nó:

import sys, webbrowser 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 

app = QApplication(sys.argv) 
web = QWebView() 

web.load(QUrl("http://www.az2000.de/projects/javascript-project/")) 
web.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) 


def linkClicked(url): webbrowser.open(str(url.toString())) 
web.connect(web, SIGNAL("linkClicked (const QUrl&)"), linkClicked) 


web.show() 

sys.exit(app.exec_()) 
+1

Cảm ơn. Chúng ta có thể ràng buộc trình xử lý bằng cách này: web.linkClicked.connect (self.linkClicked) –

Các vấn đề liên quan