标题 pyqt5 中的PyQt5.QtWebEngineWidgets.QWebEngineView类
1.pyqt5关于html网页的行为
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
################################################
#######创建主窗口
################################################
class MainWindow(QDialog):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.setWindowTitle('My Browser')
#self.showMaximized()
self.setGeometry(100,100,400,400)
self.button=QPushButton("get")
self.webview = QWebEngineView()
self.layout=QVBoxLayout()
self.setLayout(self.layout)#设置垂直布局
#嵌入html代码
self.webview.setHtml("""
<html>
<head>
<title> My browser </title>
</head>
<body>
<label for="number">number:</label>
<input type="text" name="number" id="number">
<p />
<input type="text" name="lab" id="labnumber">
</body>
</html>
""")
#将各控件加入到布局中
self.layout.addWidget(self.webview)
self.layout.addWidget(self.button)
self.button.clicked.connect(self.complete_name)#点击按钮后调用javascript代码
def complete_name(self):
#javaScript语句,用来控制html的行为(让网页动起来)
js_string = '''
function myFunction()
{
var number = document.getElementById('number').value;
document.getElementById('labnumber').value = number;
return number;
}
myFunction();
'''
#page()函数获得一个QWebEnginePage对象,就可以访问整个web界面了.
#runJavaScript(JavaScript代码,回调函数)
#如果只注意网页的变化,也可不写回调函数。因为网页的行为只与javaScript代码有关
self.webview.page().runJavaScript(js_string, self.js_callback)
# 回调函数
def js_callback(self, result):
print(result)#result的值为javaScript 函数的返回值(return number;)
#QMessageBox.information(self, "提示", str(result))
################################################
#######程序入门
################################################
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())