余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

使用Python和PyQT创建Web浏览器(cad如何创建块并使用块)

xiyangw 2022-11-25 12:05 46 浏览 0 评论

在本教程中,我们将使用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))

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://完整的网址')) //这里和上面一样

myapp.show()

sys.exit(app.exec_())

相关推荐

Mac软件删除方法,这样删除不会有残留
Mac软件删除方法,这样删除不会有残留

Mac电脑如果有太多无用的应用程序,很有可能会拖垮Mac系统的运行速度。因此,卸载电脑中无用的软件是优化Mac系统运行速度的最佳方式之一。Mac卸载应用程序的方...

2023-09-23 17:34 xiyangw

安利一款 Mac 的清理工具 Cleaner One
安利一款 Mac 的清理工具 Cleaner One

自从入手mac以后,一直在找款mac的清理工具之前也尝试过CleanMyMac和柠檬清理柠檬清理是腾讯旗下的,虽然免费,但更新不频繁,最近一次更新还...

2023-09-23 17:33 xiyangw

苹果电脑需要安装杀毒软件吗?一文告诉你
苹果电脑需要安装杀毒软件吗?一文告诉你

随着数字时代的发展,计算机安全问题变得越来越重要。而在计算机安全领域中,杀毒软件是一个被广泛讨论的话题。苹果电脑需要安装杀毒软件吗?对于苹果电脑用户来说,他们常...

2023-09-23 17:30 xiyangw

mac上实用的工具

mac系统上有很多好用的工作,本期给大家带来一些本人长期使用的软件,特别是刚从windows系统的pc转移到macbook上的小伙伴,可能有一定的帮助。1.Alfred可以完全取代苹果自带Spotl...

Mac专用免费清理软件CleanMyMac
Mac专用免费清理软件CleanMyMac

在Mac中,越来越多的垃圾占用了磁盘空间怎么办?直接拖拽到废纸篓很多软件不能完全卸载干净怎么办……伴随着这些问题,如果有一款多功能的软件能够解决以上的全部难题就...

2023-09-23 17:29 xiyangw

MAC软件分享CleanMyMac中文版 支持最新版系统
MAC软件分享CleanMyMac中文版 支持最新版系统

CleanMyMac的强大不需要过多的去介绍,软件支持最新版Macos10.15.6系统。CleanMyMac具有非常强大的功能,可让您安全,智能地扫描和清理...

2023-09-23 17:28 xiyangw

安装CleanMyMac 3提示软件已损坏
安装CleanMyMac 3提示软件已损坏

安装CleanMyMac3提示软件已损坏,出现这样的原因是往往是使用了CleanMyMac3破解版,主要是因为CleanMyMac3的来源问题,我们的正版软件(...

2023-09-23 17:27 xiyangw

苹果Mac中使用 CleanMyMac X 清理垃圾时频繁要求输入密码如何解决?
苹果Mac中使用 CleanMyMac X 清理垃圾时频繁要求输入密码如何解决?

有不少用户反映在使用CleanMyMac清理系统垃圾文件的时候会频繁要求输入开机密码,如何解决这个问题?来看看吧!解决方法:1.打开「终端」,并输入以下命令...

2023-09-23 17:27 xiyangw

MacBook清理垃圾软件哪个好
MacBook清理垃圾软件哪个好

很多时候手动清理mac效果并没有那么好,常常会有疏忽的地方,其实我们完全可以依赖一些mac清理垃圾软件。windows上我们会借助360安全卫士、腾讯安全管家等...

2023-09-23 17:26 xiyangw

全球真的只有13台DNS根域名服务器吗?
全球真的只有13台DNS根域名服务器吗?

DNS根域名服务器(DNSrootnameservers)是一组特殊的DNS服务器,它们存储有关Internet域名系统(DNS)中所有顶级域的信息。这些...

2023-09-23 17:25 xiyangw

网络管理员,网络工程师每日一练

在DNS服务器中的()资源记录定义了区域的邮件服务器及其优先级。A.SOAB.NSC.PTRD.MX试题答案:D...

Android性能优化之网络优化DNS和HttpDNS知识详解
Android性能优化之网络优化DNS和HttpDNS知识详解

前言小计在App访问网络的时候,DNS解析是网络请求的第一步,默认我们使用运营商的LocalDNS服务。有数据统计,在这一块3G网络下,耗时在2...

2023-09-23 17:25 xiyangw

如何修改域名DNS服务器?修改DNS服务器常见问题汇总
如何修改域名DNS服务器?修改DNS服务器常见问题汇总

在域名管理过程中,我们为了获得更专业安全的域名解析服务,就需要修改DNS服务器,下面中科三方针对修改DNS服务器常见问题做下简单回答。1.修改DNS服务器和修改...

2023-09-23 17:24 xiyangw

netty系列之:在netty中使用 tls 协议请求 DNS 服务器

简介在前面的文章中我们讲过了如何在netty中构造客户端分别使用tcp和udp协议向DNS服务器请求消息。在请求的过程中并没有进行消息的加密,所以这种请求是不安全的。那么有同学会问了,就是请求解析一个...

「GCTT 出品」使用 Golang 构建 DNS 服务器
「GCTT 出品」使用 Golang 构建 DNS 服务器

需求:对DNS查询进行转发和缓存的本地DNS服务器。补充1:提供一个记录管理的接口(HTTPhandler)。补充2:提供一个名字(name)。D...

2023-09-23 17:23 xiyangw

取消回复欢迎 发表评论: