之前有做过一个pdf阅读器,没看过的可以看python 利用 PySide2&PyQt5实现 PDF 阅读器,也重新录了一个视频。
上周有个读者找我要了源代码,
然后他自己改了一下,想要加上放大缩小的功能,结果不行,让我看看。
最后测试了一下,发现对pdf确实不行,针对网页是没问题。
顺带做了一个简单的模拟浏览器,不过还不支持连续点击,后面有时间搞上。
视频:
完整代码:
from PySide2.QtWidgets import *
from PySide2.QtCore import QUrl
from PySide2.QtWebEngineWidgets import QWebEngineView
app = QApplication([])
window = QWidget()
# 添加4个控件
h_layout = QHBoxLayout()
l_edit = QLineEdit()
l_edit.setPlaceholderText('输入网址')
pbtn_search = QPushButton('搜一下')
pbtn_zoom_in = QPushButton('缩小')
pbtn_zoom_out = QPushButton('放大')
h_layout.addWidget(l_edit)
h_layout.addWidget(pbtn_search)
h_layout.addWidget(pbtn_zoom_in)
h_layout.addWidget(pbtn_zoom_out)
# 添加浏览器控件,以及整体垂直布局
v_layout = QVBoxLayout()
browser = QWebEngineView()
browser.load(QUrl(''))
v_layout.addLayout(h_layout)
v_layout.addWidget(browser)
# 搜索功能
def search():
url = l_edit.text()
browser.load(QUrl(url))
# 缩小功能
def zoom_in_func():
browser.setZoomFactor(browser.zoomFactor() - 0.1)
# 放大功能
def zoom_out_func():
browser.setZoomFactor(browser.zoomFactor() + 0.1)
# 按钮与方法绑定
pbtn_search.clicked.connect(search)
pbtn_zoom_in.clicked.connect(zoom_in_func)
pbtn_zoom_out.clicked.connect(zoom_out_func)
window.setLayout(v_layout)
window.show()
app.exec_()
(全文完)