子类QWEBENGINEVIEW
文件:simple_browser.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'simple_browser.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(749, 453)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.web_frame = QtWidgets.QFrame(self.centralwidget)
self.web_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.web_frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.web_frame.setObjectName("web_frame")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.web_frame)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.gridLayout.addWidget(self.web_frame, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
文件:run_me_2.py
from PyQt5 import QtCore, QtGui, QtWidgets
from simple_browser import Ui_MainWindow
import sys
import traceback
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWebChannel import QWebChannel
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from PyQt5.QtCore import QUrl
class Run_me:
def __init__(self):
self.app = QtWidgets.QApplication(sys.argv)
self.MainWindow = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.MainWindow)
self.MainWindow.show()
self.view = Web_View(self)
#close action
self.MainWindow.closeEvent = lambda event:self.closeEvent(event)
sys.exit(self.app.exec_())
def closeEvent(self,event):
try:
event.accept()
except:
error_message = str(traceback.format_exc())
print(error_message)
class Web_View(QWebEngineView):
def __init__(self,parent,*args, **kwargs):
try:
super().__init__(parent.ui.web_frame,*args, **kwargs)
# setup a page with my html
self.setPage(WebEnginePage(self))
self.load(QUrl("http://www.in.gr/"))
#self.setGeometry(0,0,770,80)
self.setParent(parent.ui.web_frame)
self.show()
parent.ui.verticalLayout_2.addWidget(self)
parent.ui.web_frame.update()
# setup channel
#self.channel = QWebChannel()
#self.channel.registerObject('backend', self)
#self.page().setWebChannel(self.channel)
except Exception as e:
print(e)
class WebEnginePage(QWebEnginePage):
def javaScriptConsoleMessage(self, level, message, lineNumber, sourceID):
print("-----")
print(level)
print(message)
print(lineNumber)
print(sourceID)
print("-----")
if __name__=="__main__":
program = Run_me()
运行python3 run_me_2.py
在屏幕上没有Web输出吗?
怎么了,
#install pyqt5
sudo apt-get -y install python3-pyqt5
sudo apt-get -y install qtcreator pyqt5-dev-tools
sudo apt-get -y install qttools5-dev-tools
sudo apt install -y qtcreator qtbase5-dev qt5-qmake cmake
python3 -m pip install PyQt5==5.13.1 --use-feature 2020-resolver
python3 -m pip install PyQt5-sip
sudo apt-get -y install python3-dev
sudo apt-get -y install python3-pyqt5
sudo apt-get -y install qtcreator pyqt5-dev-tools
sudo apt-get -y install qttools5-dev-tools
我用来安装Pyqt5的代码。
File: simple_browser.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'simple_browser.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(749, 453)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.web_frame = QtWidgets.QFrame(self.centralwidget)
self.web_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.web_frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.web_frame.setObjectName("web_frame")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.web_frame)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.gridLayout.addWidget(self.web_frame, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
File: run_me_2.py
from PyQt5 import QtCore, QtGui, QtWidgets
from simple_browser import Ui_MainWindow
import sys
import traceback
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWebChannel import QWebChannel
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from PyQt5.QtCore import QUrl
class Run_me:
def __init__(self):
self.app = QtWidgets.QApplication(sys.argv)
self.MainWindow = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.MainWindow)
self.MainWindow.show()
self.view = Web_View(self)
#close action
self.MainWindow.closeEvent = lambda event:self.closeEvent(event)
sys.exit(self.app.exec_())
def closeEvent(self,event):
try:
event.accept()
except:
error_message = str(traceback.format_exc())
print(error_message)
class Web_View(QWebEngineView):
def __init__(self,parent,*args, **kwargs):
try:
super().__init__(parent.ui.web_frame,*args, **kwargs)
# setup a page with my html
self.setPage(WebEnginePage(self))
self.load(QUrl("http://www.in.gr/"))
#self.setGeometry(0,0,770,80)
self.setParent(parent.ui.web_frame)
self.show()
parent.ui.verticalLayout_2.addWidget(self)
parent.ui.web_frame.update()
# setup channel
#self.channel = QWebChannel()
#self.channel.registerObject('backend', self)
#self.page().setWebChannel(self.channel)
except Exception as e:
print(e)
class WebEnginePage(QWebEnginePage):
def javaScriptConsoleMessage(self, level, message, lineNumber, sourceID):
print("-----")
print(level)
print(message)
print(lineNumber)
print(sourceID)
print("-----")
if __name__=="__main__":
program = Run_me()
Running python3 run_me_2.py
has no web output in the screen?
What's wrong
#install pyqt5
sudo apt-get -y install python3-pyqt5
sudo apt-get -y install qtcreator pyqt5-dev-tools
sudo apt-get -y install qttools5-dev-tools
sudo apt install -y qtcreator qtbase5-dev qt5-qmake cmake
python3 -m pip install PyQt5==5.13.1 --use-feature 2020-resolver
python3 -m pip install PyQt5-sip
sudo apt-get -y install python3-dev
sudo apt-get -y install python3-pyqt5
sudo apt-get -y install qtcreator pyqt5-dev-tools
sudo apt-get -y install qttools5-dev-tools
Code that i used to install pyqt5.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论