第一行定义回调或事件,如果一个人按下enter(returnPressed),它将调用函数loadURL。
在本教程中,我们将使用Python构建一个webbrowser。我们将使用具有Web组件的PyQT库。在本教程中,您将学习如何将所有组件连接在一起。我们将使用默认的渲染引擎,而不是在本教程中滚动一个。
PyQt安装
安装所需的包:
sudo pip install python-qt4
sudo apt-get install qt4-designer
sudo apt-get install pyqt4-dev-tools
sudo apt-get install python-kde4
使用PyQT创建GUI
从应用程序菜单启动qt4-designer。在QT Designer应用程序会出现:
选择主窗口,然后按创建。我们现在打开设计器窗口。在窗口上拖动KWebView组件。如果组件列表中有QtWebView。用它代替。我们还在顶部添加了一个Line Edit。按文件>另存为> browser.ui。
运行命令:
pyuic4 browser.ui > browser.py
这将生成一个Python文件。从browser.py文件的底部删除“来自kwebview import KWebView”的行。将KWebView更改为QtWebView。我们想要使用QtWebView。如果您懒得更改它,请从下面获取browser.py文件。
QWebView探索
使用以下内容创建名为run.py的文件:
import sys
from browser import BrowserDialog
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
class MyBrowser(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
QWebView.__init__(self)
self.ui = BrowserDialog()
self.ui.setupUi(self)
self.ui.lineEdit.returnPressed.connect(self.loadURL)
def loadURL(self):
url = self.ui.lineEdit.text()
self.ui.qwebview.load(QUrl(url))
self.show()
#self.ui.lineEdit.setText("")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyBrowser()
myapp.ui.qwebview.load(QUrl('http://www')) //这里是网址因为怕被误认为是广告就去掉了,怕被封号,哈哈
myapp.show()
sys.exit(app.exec_())
此代码将使用browser.py中定义的UI并为其添加逻辑。
self.ui.lineEdit.returnPressed.connect(self.loadURL)
def loadURL(self):
url = self.ui.lineEdit.text()
self.ui.qwebview.load(QUrl(url))
self.show()
#self.ui.lineEdit.setText("")
第一行定义回调或事件。如果一个人按下enter(returnPressed),它将调用函数loadURL。它确保一旦您按Enter键,页面就会加载该功能。如果您正确执行了所有操作,则应该能够使用以下命令运行浏览器:
python run.py
请确保输入完整的URL,包括http://部分。您的浏览器现在应该开始:
如果您的代码没有运行,请使用下面的代码(或查看差异并更改错误):
browser.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'browser.ui'
#
# Created: Fri Jan 30 20:49:32 2015
# by: PyQt4 UI code generator 4.10.4
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class BrowserDialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(1024, 768)
self.qwebview = QWebView(Dialog)
self.qwebview.setGeometry(QtCore.QRect(0, 50, 1020, 711))
self.qwebview.setObjectName(_fromUtf8("kwebview"))
self.lineEdit = QtGui.QLineEdit(Dialog)
self.lineEdit.setGeometry(QtCore.QRect(10, 20, 1000, 25))
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Browser", "Browser", None))
import sys
from browser import BrowserDialog
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
class MyBrowser(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
QWebView.__init__(self)
self.ui = BrowserDialog()
self.ui.setupUi(self)
self.ui.lineEdit.returnPressed.connect(self.loadURL)
def loadURL(self):
url = self.ui.lineEdit.text()
self.ui.qwebview.load(QUrl(url))
self.show()
#self.ui.lineEdit.setText("")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyBrowser()
myapp.ui.qwebview.load(QUrl('http://完整的网址')) //这里和上面一样
myapp.show()
sys.exit(app.exec_())
如果你喜欢这篇文章请分享或收藏,如果你不喜欢,请不要乱举报,真的很烦,这篇文章是我冒着风险发的,因为部门媒体不能识别广告和非广告,而里面也有很多文件夹比如.py,是一个人都晓得.py是Python的后缀名,但是有的就是不认,已经被扣了很多分了,在被扣,以后就不在分享Python,毕竟我也想拥有自己的账号,谢谢
领取专属 10元无门槛券
私享最新 技术干货