Python 应用 - 制作简易浏览器

需求:把网站弄成独立程序样式(奇葩想法暂且不管)

解决方案:制作一个简易浏览器,再打包成exe程序

难点:PyQt5版本过高,PyQtWebEngine缺失,解决直接安装(有时会安装失败,多弄几次)

pip install PyQtWebEngine

完成程序:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
from rw_ini import read_config

# 创建主窗口
class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        rc = read_config("browser.ini")
        browser_name = rc.get("browser", "name", fallback="chrome")
        window_width = rc.get("browser", "window_width", fallback=None)
        window_height = rc.get("browser", "window_height", fallback=None)
        command_executor = rc.get("grid", "command_executor", fallback="http://www.baidu.com")

        # 设置窗口标题
        self.setWindowTitle(browser_name)
        # 设置窗口大小1300*600
        self.resize(int(window_width), int(window_height))
        self.show()

        self.webview = WebEngineView(self)
        self.webview.load(QUrl(command_executor))
        self.setCentralWidget(self.webview)

# 创建浏览器
class WebEngineView(QWebEngineView):
    windowList = []
    # 重写createwindow()
    def createWindow(self, QWebEnginePage_WebWindowType):
        new_webview = WebEngineView()
        new_window = MainWindow()
        new_window.setCentralWidget(new_webview)
        # new_window.show()
        self.windowList.append(new_window)  # 注:没有这句会崩溃!!!
        return new_webview

# 程序入口
if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 创建主窗口
    browser = MainWindow()
    browser.show()
    # 运行应用,并监听事件
    sys.exit(app.exec_())

配置文件(读取配置文件方法前面文章有过介绍):

[local]
local_browser = False
wait_time = 10

[browser]
name = xxx系统
window_width = 1300
window_height = 600

[grid]
command_executor = http://www.baidu.com
headless = False

运行效果:

 打包exe又出现问题,找不到QtWebEngineProcess.exe路径

解决办法:

1.dist\browser\PyQt5\Qt\bin和dist\browser\PyQt5\Qt\resources两个目录下的文件复制到dist\browser目录下

2.再把dist\browser目录打包成安装包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值