Qt5.WebView.添加节点的测试代码

Posted CppSkill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt5.WebView.添加节点的测试代码相关的知识,希望对你有一定的参考价值。

1、代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QWebFrame>
#include <QWebElement>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pbtnOpenSVG_clicked()
{
    ui->webView->load(QUrl::fromLocalFile("D:\\\\DRGIS\\\\BIN\\\\PwDrawSvg\\\\NewSvg.svg"));
}

void PatchElement(void *_p)
{
#ifndef DEBUG_ZZ
    _asm
    {
        push eax
        mov eax,_p
        mov eax,[eax+4]
        or [eax+0xc],0x10
        pop eax
    }
#else// DEBUG_ZZ
    _asm
    {
        push eax
        mov eax,_p
        mov eax,[eax+4]
        or [eax+0x14],0x10
        pop eax
    }
#endif// DEBUG_ZZ
}

void PatchElementUn(void *_p)
{
#ifndef DEBUG_ZZ
    _asm
    {
        push eax
        mov eax,_p
        mov eax,[eax+4]
        and [eax+0xc],0xFFFFFFEF
        pop eax
    }
#else// DEBUG_ZZ
    _asm
    {
        push eax
        mov eax,_p
        mov eax,[eax+4]
        and [eax+0x14],0xFFFFFFEF
        pop eax
    }
#endif// DEBUG_ZZ
}

void MainWindow::on_pbtnAppendWebEle_clicked()
{
    QWebElement eleSvg = ui->webView->page()->currentFrame()->documentElement();
    //qDebug() << eleSvg.tagName();


    QWebElement eleFind = eleSvg.findFirst("#Term_Layer");
    if (eleFind.isNull())
        qDebug() << "eleFind is Null";
    else
        qDebug() << "eleFind is not Null";
    QString str = "<g id=\\"zzz\\"></g>";

  // ZC: 下面的 PatchElement()和PatchElementUn(),暂时是在 Release中使用,Debug中不确定一定OK... PatchElement(
&eleFind);  // ZC: 使用QWebElement::???Inside(...)的时候,就要对 那个节点 进行Patch ! ! ! eleFind.appendInside(str); PatchElementUn(&eleFind); PatchElement(&eleFind.parent());  // ZC: 使用QWebElement::???Outside(...)的时候,就要对 那个节点的父节点 进行Patch ! ! ! eleFind.appendOutside(str); PatchElementUn(&eleFind.parent()); } void MainWindow::on_pbtnPrintSvgContent_clicked() { qDebug() << ui->webView->page()->currentFrame()->tohtml(); }

2、

#-------------------------------------------------
#
# Project created by QtCreator 2018-08-15T09:00:45
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets \\
                                        webkit  \\
                                        webkitwidgets

TARGET = WebView_Test_01
TEMPLATE = app


SOURCES += main.cpp\\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

3、

 

4、

5、

 

以上是关于Qt5.WebView.添加节点的测试代码的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

保留对附加节点 javascript 的引用

为markdown代码块添加行号,复制和折叠按钮

postman添加断言

如何在Sublime Text中添加代码片段