-
UID:105795
-
- 注册时间2010-09-26
- 最后登录2020-09-13
- 在线时间641小时
-
- 发帖6
- 搜Ta的帖子
- 精华0
- 金钱99
- 威望19
- 贡献值0
- 好评度9
-
访问TA的空间加好友用道具
|
—
本帖被 XChinux 从 Additional Language Bindings for Qt 移动到本区(2013-02-14)
—
代码如下: - #-*- coding:utf-8 -*-
- # author:joyo
- # make: 2011/6/29
- import sys
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from PyQt4.QtWebKit import *
- QTextCodec.setCodecForTr(QTextCodec.codecForName("UTF-8"))
- class browserWindow(QWidget):
- def __init__(self,parent =None):
- self.ZoomStepSize=10
- super(browserWindow,self).__init__(parent)
-
- self.setWindowTitle(self.tr("简易浏览器"))
- self.setWindowFlags(Qt.WindowStaysOnTopHint)
- self.webView =QWebView()
- self.webView.settings().setAttribute(QWebSettings.PluginsEnabled, True)#支持插件
- self.webView.settings().setAttribute(QWebSettings.JavaEnabled, True)#支持Java
- self.webView.settings().setAttribute(QWebSettings.JavascriptEnabled, True)#支持Javascript
- self.webView.settings().setAttribute(QWebSettings.JavascriptCanOpenWindows, True)
- self.webView.settings().setAttribute(QWebSettings.PrivateBrowsingEnabled,True)
- self.webView.settings().setAttribute(QWebSettings.AutoLoadImages,True)
- self.webView.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
- self.webView.load(QUrl("http://www.baidu.com"))
- self.createActions()
- self.createToolBar()
- self.createLayout()
- self.createConnections()
- self.setMouseTracking(True)
-
- def createActions(self):
- self.homePageAction = QAction(QIcon("images/home.png"),
- self.tr("主页"),self)
- self.zoomOutAction = QAction(QIcon("images/zoomout.png"),
- self.tr("放大"),self)
- self.zoomOutAction.setShortcut(QKeySequence.ZoomOut)
- self.zoomInAction = QAction(QIcon("images/zoomin.png"),
- self.tr("缩小"),self)
- self.zoomInAction.setShortcut(QKeySequence.ZoomIn)
-
- self.zoomFixAction =QAction(QIcon("images/zoomFix.png"),self.tr("实际大小"),self)
-
-
- self.setUrlAction=QAction(QIcon("images/seturl.png"),
- self.tr("设置网址..."),self)
- self.setUrlAction.setShortcut(QKeySequence("F2"))
-
- def createToolBar(self):
- self.toolBar = QToolBar(self.tr("导航"))
- self.toolBar.setToolButtonStyle(Qt.ToolButtonIconOnly)
- self.toolBar.addAction(self.webView.pageAction(QWebPage.Back))
-
- self.toolBar.addAction(self.webView.pageAction(QWebPage.Forward))
- self.toolBar.addAction(self.homePageAction)
- self.toolBar.addAction(self.webView.pageAction(QWebPage.Reload))
- self.toolBar.addAction(self.webView.pageAction(QWebPage.Stop))
- self.toolBar.addSeparator()
- self.toolBar.addAction(self.zoomOutAction)
- self.toolBar.addAction(self.zoomInAction)
- self.toolBar.addAction(self.zoomFixAction)
- self.zoomSpinBox=QSpinBox()
- self.zoomSpinBox.setSingleStep(self.ZoomStepSize)
- self.zoomSpinBox.setRange(25,250)
- self.zoomSpinBox.setValue(100)
- self.zoomSpinBox.setSuffix(self.tr("%"))
- self.zoomSpinBox.setFocusPolicy(Qt.NoFocus)
- self.progressBar= QProgressBar()
- self.toolBar.addWidget(self.zoomSpinBox)
- self.toolBar.addSeparator()
- self.toolBar.addAction(self.setUrlAction)
- self.toolBar.addWidget(self.progressBar)
-
- def createLayout(self):
- vBoxLayout = QVBoxLayout()
- vBoxLayout.addWidget(self.webView)
- vBoxLayout.addWidget(self.toolBar)
-
- mainLayout=QGridLayout()
- mainLayout.setContentsMargins(0,0,0,0)
- mainLayout.addLayout(vBoxLayout,0,0)
- self.setLayout(mainLayout)
-
- def createConnections(self):
- self.connect(self.homePageAction,SIGNAL('triggered()'),self.homePage)
- self.connect(self.webView,SIGNAL('loadProgress(int)'),
- self.progressBar, SLOT('setValue(int)'))
- self.connect(self.setUrlAction,SIGNAL('triggered()'),self.setUrl)
- self.connect(self.zoomOutAction,SIGNAL('triggered()'),self.zoomOut)
- self.connect(self.zoomInAction,SIGNAL('triggered()'),self.zoomIn)
- self.connect(self.zoomFixAction,SIGNAL('triggered()'),self.zoomFix)
- self.connect(self.zoomSpinBox, SIGNAL('valueChanged(int)'),self.setZoomFactor)
- self.connect(self.webView, SIGNAL('linkClicked(QUrl)'), self.loadLink);#实现进入二级超链接
-
-
- def homePage(self):
- self.webView.load(QUrl("http://www.baidu.com"))
-
- def zoomOut(self):
- self.zoomSpinBox.setValue(self.zoomSpinBox.value() - self.ZoomStepSize)
-
- def zoomIn(self):
- self.zoomSpinBox.setValue(self.zoomSpinBox.value() + self.ZoomStepSize)
-
- def zoomFix(self):
- self.zoomSpinBox.setValue(100.0)
-
- def setZoomFactor(self,zoom):
- self.webView.setZoomFactor(zoom /100.0)
-
- def setUrl(self):
- url,ok = QInputDialog.getText(self,self.tr("设置网址"),self.tr("网址:"))
- theurl = str(url)
-
- if ok:
- if theurl.find("://") == -1:
- theurl = "http://" + theurl
-
- self.webView.load(QUrl(theurl))
-
-
- def loadLink(self, url):
- self.webView.load(QUrl(url))
-
-
-
- app = QApplication(sys.argv)
- BrowserWindow = browserWindow()
- BrowserWindow.show()
- sys.exit(app.exec_())
运行结果: 新版:  源代码: webborwser.rar (87 K) 下载次数:162
|