收集了一个pyqt4做的浏览器

来源:互联网 发布:苹果 看书软件 编辑:程序博客网 时间:2024/05/21 09:17

  在网上收集了一个源码,有很多地方不完善的,请大家热情指导。

import sysfrom PyQt4.QtCore import *from PyQt4.QtGui import *from PyQt4.QtWebKit import *import webbrowserclass WebPage(QWebPage):    def __init__(self):        super(WebPage, self).__init__()     def acceptNavigationRequest(self, frame, request, type):                if(type == QWebPage.NavigationTypeLinkClicked):            if(frame == self.mainFrame()):                self.view().load(request.url())                print "local window"            else:                #webbrowser.open(request.url().toString())                self.view().load(request.url())                return False        return QWebPage.acceptNavigationRequest(self, frame, request, type)class MyBrowser(QWidget):    def __init__(self, parent = None):        super(MyBrowser, self).__init__(parent)        self.createLayout()        self.createConnection()    def search(self):        address = str(self.addressBar.text())        if address:            if address.find('://') == -1:                address = 'http://' + address            url = QUrl(address)            self.webView.load(url)                        self.webView.show()    def linkClicked(self, url):        self.webView.load(url)            def createLayout(self):        self.setWindowTitle("keakon's browser")        self.addressBar = QLineEdit()        self.goButton = QPushButton("&GO")        self.sendButton = QPushButton("&Send")        bl = QHBoxLayout()        bl.addWidget(self.addressBar)        bl.addWidget(self.goButton)        bl.addWidget(self.sendButton)        self.webView = QWebView()        self.webView.setPage(WebPage())        self.webSettings = self.webView.settings()        self.webSettings.setAttribute(QWebSettings.PluginsEnabled,True)        self.webSettings.setAttribute(QWebSettings.JavascriptEnabled,True)        self.webView.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)        self.webView.page().linkClicked.connect(self.linkClicked)        layout = QVBoxLayout()        layout.addLayout(bl)        layout.addWidget(self.webView)        self.setLayout(layout)    def createConnection(self):        self.connect(self.addressBar, SIGNAL('returnPressed()'), self.search)        self.connect(self.addressBar, SIGNAL('returnPressed()'), self.addressBar, SLOT('selectAll()'))        self.connect(self.goButton, SIGNAL('clicked()'), self.search)        self.connect(self.goButton, SIGNAL('clicked()'), self.addressBar, SLOT('selectAll()'))        self.connect(self.sendButton, SIGNAL('clicked()'), sendtest)def sendtest():    import socket,sys    import struct    import binascii    host="42.51.132.111"    port=8000    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    print s.getsockname()    senddata = binascii.a2b_hex ("000000220004313030370A183534386665356637306366323332316432653162383762331006")    print senddata    print repr(senddata[36])    s.send(senddata)app = QApplication(sys.argv)browser = MyBrowser()browser.show()sys.exit(app.exec_())


0 0
原创粉丝点击