pyside2中打开的外部页面WebEngineView与python部分的交互

利用PySide2简单实现浏览器效果 Qt中QWebEngine非常容易制作简易浏览器,不过c++语言下QWebEngine模块只支持VS。 这次尝试用python语言调用了一下该模块: 效果: 代码: import sys from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * from PySide2.Qt... 阅读详情

pyside2中打开的外部页面WebEngineView与python部分的交互

19年末在涉及到python中打开外部页面的应用时,花了很多时间在网上找可实现的方式,从pyqt5到pyside2,最后是从国外的网站找到了可用的demo,和大家分享一下.(python3以上才支持pyside2)
附上参考的网址:https://justcode.nimbco.com/PyInstaller-with-Qt5-WebEngineView-using-PySide2/

首先在python代码中

import os
from pathlib import Path
from PySide2.QtWidgets import QApplication
from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from PySide2.QtWebChannel import QWebChannel
from PySide2.QtCore import QUrl, Slot, QObject, QUrl

data_dir = Path(os.path.abspath(os.path.dirname(__file__))) / 'data'

class Handler(QObject):
    def __init__(self, *args, **kwargs):
        super(Handler, self).__init__(*args, **kwargs)

    #@Slot是关键,是js中调用的接口,经测试,只能传一个参数,传对象参数时需要把它专为json字符串
    @Slot(str, result=str)
    def sayHello(self, name):        
        return f"Hello from the other side, {name}"

class WebEnginePage(QWebEnginePage):
    def __init__(self, *args, **kwargs):
        super(WebEnginePage, self).__init__(*args, **kwargs)

PySide QWebChannel实现PythonJS双向通信的前后端分离桌面应用 以往开发桌面应用通常都是页面接口一起写,这样开发周期比较长,且页面样式不灵活,如果能把页面交给前端写的话,就可前后端并行开发桌面应用了,并且css语言灵活好用样式丰富。下面介绍一种 Python + vue 的桌面应用开发模式(之前我有讲过另一种也是 python + vue 的桌面应用开发,但那种不能双向通信,详情可参考这篇文章。 阅读详情

相关推荐

pyqt、pysideQWebEngine前端js交互简单示例

说明 本示例只需在同一文件夹创建三个文件,三个文件建好之后,运行main.py文件即可。 本示例主要演示PyQt、PySideQWebEngine前端JS交互功能。 示例使用Pyside6,如果使用PyQt,Slot需要换成pyqtSlot. 效果 先看运行效果 代码 本示例需要在同一个文件夹下创建三个文件 一、前端HTML文件 index.html <!DOCTYPE html> <html lang="en"> <head> <meta chars

浅醉樱花雨的专栏 6298

PySide2窗口嵌入桌面示例

# PySide2(Qt for Python)窗口嵌入桌面示例 1. 使用win32api.EnumWindows()枚举窗口; 2. 先找到"SHELLDLL_DefView"窗口的父窗口; 3. 再找到该窗口的下一层窗口“WorkerW”; 4. 将我们的窗口设为该“WorkerW”窗口的子窗口即可。 例程使用方法:右键托盘栏图标,可以选择将窗口嵌入桌面或将窗口变回正常桌面。

pyside2 官方示例代码

pyqt5是第三方python qt库,而pyside2是Qt官方的python qt库,由于官方版本推出时间比较晚,所以现在很多人只知道pyqt5不知道pyside2。两个版本的类库,大体上是相同的,但是有些函数事由区别的,比如定义信号时,两个的函数就不一样。

python(基于pyside2)下利用QWebEngineView内嵌网页实现的的自动登陆小程序,

今天写了一个python(基于pyside2)的自动登陆小程序,利用QWebEngineView内嵌网页实现的。主要解决了下面一些技术问题: 1、QWebEngineView内嵌网页。 利用QWebEnginePage对象的runJavaScript就可实现。 # 初始化一个page self.webview = QWebEngineView(self) self.page = QWebEnginePage() self.webview

软件人生 5182

QWebengineView 崩溃问题

最近用QWebEngineView显示网页,运行到这里,程序就崩溃。 网上查资料说和显卡驱动有关系(显卡驱动硬件不匹配), 回想了下,貌似大概前不久刚刚把显卡驱动升级为最新版本 - -!, 去官网找到此电脑型号显卡驱动,重新安装了下,QWebEngineView使用正常!   相关链接: https://bugreports.qt.io/browse/QTBUG-51157 htt...

面朝大海,春暖花开 5010

PySide2 QWebEngineWeb js交互

python使用PySide2Web js进行交互

weixin_45228198的博客 2253

PySide6的WebEngineView部分电脑不显示的问题

PySide6的WebEngineView部分电脑不显示问题

qq_41488821的博客 741

PyQt5|PySide2 UI界面内嵌web浏览器的方法

PyQt5|PySide2 程序内嵌web浏览器的方法 内嵌web浏览器 有时候,我们需要在程序中嵌入浏览器,显示一个指定的网页。 Qt5中,有一个 QtWebEngineWidgets 模块,通过它,可以启动基于Chromium的浏览器(和chrome是同样的内核)进程,并且把web界面内嵌入 Qt程序中。 参考官网说明 案例 我们可以实现一个内嵌浏览器,打开白月黑羽网站。 整个案例的参考代码,点击这里下载 链接:https://pan.baidu.com/s/1FBLdSU0w_LYSs

HRD的博客 8538

38.PythonQWebEngineView使用方法示例

Python中,我们通常使用PyQt5或PySide2库来使用Qt的QWebEngineViewQWebEngineView是一个小部件,可以用来显示网页。QWebEngineView.load方法用于加载并显示一个URL指定的页面。它需要一个QUrl对象作为参数。QWebEngineView.setHtml方法用于设置当前页面的HTML内容。它需要一个字符串作为参数,该字符串包含要显示的HTML内容。

坐忘了说画 1165

pyside2做个简易的浏览器

pyside2的一些学习笔记

fresh_nam的博客 1940

pyside2官方说明文档.zip

python pyside2官方说明文档。文件在win直接打开是无法显示的,需要右键属性,然后勾选解除锁定,然后就可以正常查看了

pysideQWebEngineView中和javascript通信方法

pyside2中可以使用QtWebChannel 使QWebEngineView和前端页面的javasccript通信。

一个今天胜过两个明天 560

PySide6学习/教程/笔记(三):Designer使用以及设计一个基础页面

刚接到通知,要我用Designer设计,说后面只需要更改ui文件就行,让我看看怎么实现。还让我先实现一个demo原型来完善需求。我真的麻了,没人教啊。那么我们先熟悉pyside6自带的designer吧。

strongants的博客 4554

python怎么做q检验_python – 如何检测pyside2中Qwebengine内部的按钮单击

我在pyside2中编写了一个应用程序,它在QWebEngine中打开了一个网页.该网页有2个按钮,我不明白如何在pyside2 app模块中检测按钮点击,我需要在该按钮点击上执行其他操作.例下面是我的代码from PySide2.QtWidgets import QApplicationfrom PySide2.QtWebEngineWidgets import QWebEngineView, ...

weixin_39551554的博客 492

PySide】QtWebEngine网页浏览器打开Flash网页

Pyside QtWebEngine网页浏览器打开Flash网页。

```On Earth, Be Water, By Coding``` 1569

iframe子向父跨域传递数据 postMessage

iframe如果存在跨域的话, window.parent 拿不到父级窗口对象, 无法发送消息, 那就从父级先发过来一个消息, 从消息中取到父级的窗口对象. 父页面: // 获取到父页面创建的iframe let iframe = document.xxx() iframe.src = 'http://192.168.0.184:88/static/xxx.html' // iframe创建完成后再发送消息 iframe.onload = function () { // 向子页面传递消息 ifr.

杜东轩的博客 1059
下一篇: 记一次mybatis返回类型为内部类时的问题
蓝夜望水
博客等级 码龄9年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值