jjzjj

qtwebengine

全部标签

javascript - QByteArray 通过 QWebChannel 在 Javascript 中被视为字符串

使用QWebChannel从QtWebKit迁移到QtWebEngine。我有一个可调用函数,它向Javascript发送一个QVariant对象,它被视为一个JSON对象。所以QString变成了string,QInt变成了int,等等。在没有QWebChannel的情况下使用QtWebKit,QByteArray被视为Uint8ClampedArray,但现在使用UTF-8直接转换为string(我的QByteArray不是:()我做错了什么吗?我该怎么办?相关代码部分如下://QtWindowclasssignaltojavascriptvoidMyWindow::uplink(

c++ - QWebEngineView 在外部浏览器中打开

我正在将我的代码从QtWebKit转移到QtWebEngine。总的来说,过渡相当顺利,但是,我被困在一个特定问题上。我使用QWebEngineView来显示Googlemap页面。一些放置的标记具有弹出的信息窗口,“单击此处获取更多信息”可在外部浏览器中打开链接。使用QtWebKit,这通过setLinkDelegation策略相当容易。但是,这里似乎有点复杂。我试图按照示例进行操作,但不知何故我需要在QWebEngineView中重新定义QWebEnginePage。以下是我到目前为止的想法。知道如何将这一切联系起来吗?谢谢#ifndefMYQWEBENGINEVIEW_H#def

c++ - QWebView::settings()->setUserStyleSheetUrl() 从 QtWebKit 到 QtWebEngine?

我正在将我的代码从Qt5.5升级到Qt5.6,但我没有找到移植以下代码的方法:QWebEngineView*qwebview=newQWebEngineView(this);qwebview->settings()->setUserStyleSheetUrl(QUrl("qrc:/about.css"));qwebview->setHtml(fileContentStr);使用新的QtWeb引擎插入用户CSS的最佳方式是什么? 最佳答案 如果您在这里阅读:BugReportonQWebEngine,你会看到:Theonlyoppor

c++ - 如何在 QWebEngineView 或页面中嵌入自定义 QWidget?

我知道可以使用已弃用的类QtWebkit执行此操作,如图所示here.我想知道是否可以使用新的QtWebEngine完成类似的工作框架?我找不到在网页(QWebEnginePage)中创建插件的方法。这与Chromium中的插件技术有关吗?我目前正在探索使用Qt5.5实现这一目标的可能性。 最佳答案 我无法以某种方式找到完全明确的答案,但是在portingguide的末尾有些东西表明它不再可能:QtWebEnginerenderswebpagesusingSkiaandisnotusingQPainterorQtforthispur

c++ - 如何从QWebEnginePage获取网站内容?

我安装了最新版本的Qt(在Webkit上,Qt5.2有WTFcrash)。我尝试在页面加载时获取我网站的内容(确实如此):QStringsHtml;view.page()->toHtml([&](constQString&result){sHtml=result;qDebug()但是sHtml是空的,并且没有调用调试。我做错了什么? 最佳答案 你没有做错任何事,你只是在调用异步function:Asynchronousmethodtoretrievethepage'scontentasHTML,enclosedinHTMLandBO

c++ - 清除 QtWebEngine 中的 cookie

我正在将应用程序从QtWebKit升级到QtWebEngine。该应用程序依赖于WebKit在关闭应用程序后不会保留cookie,但WebEngine似乎默认保留它们。我对Qt一点都不熟悉。我一直在浏览文档,但似乎找不到正确的API调用来删除它们。该应用程序只有一个简单的前端QWebEngineView。 最佳答案 如果不需要更改PersistentCookiesPolicy,而只需要清除Cookie,则可以使用QWebEngineCookieStore类的方法deleteAllCookies()。所以你可以这样做:webEngin

javascript - Qt 5.4 beta WebEngineView调试

我目前正在开发一个使用Qt5.4的VS2013项目。测试版。我使用QWebEngineView(它是基于Chromium的QWebEngine的一部分),它从网络服务器加载Javascript/HTML页面。我想知道是否有可能为该QWebEngineView(或更一般的QWebEngine)调试javascript和HTML。我在网络引擎源代码中看到了一些“devtools”的概念,也许这可能是一个解决方案。 最佳答案 我复制了我的answer对于同样的问题:您可以使用较旧的QWebView来完成,请参阅QWebSettings::

javascript - 使用 QtWebEngine 在 Qt 中将 C++ 对象暴露给 Javascript

使用QtWebkit可以通过QWebFrame::addToJavaScriptWindowObject将C++对象暴露给Javascript,如https://stackoverflow.com/a/20685002/595937中所述。可以使用QtWebEngine在Qt5.4中完成同样的事情吗? 最佳答案 使用QWebEngine无法直接将C++对象导出到HTML/JS。相反,新引入的QWebChannel提供了HTML/JS和C++之间的桥梁。看看thedocumentation,尤其是在示例中。在今年的QtDevelope

c++ - QtWebEngine - 同步执行 JavaScript 以读取函数结果

我的一个C++类中有以下方法(使用QtWebEngine):QStringget(){QStringresult;view->page()->runJavaScript("test();",[this](constQVariant&v){result=v.toString();});returnresult;}就是执行test()JS函数,并返回本次调用的结果。不幸的是,回调是异步的,程序崩溃了。我怎样才能让它发挥作用? 最佳答案 回调是异步的,因为JavaScript的执行不仅发生在另一个线程中,而且发生在另一个进程中。所以没有办

c++ - Protobuf 版本与 Qt 冲突

我正在尝试将protobufsv3.3.2与Qt5.9.1一起使用。这适用于某些Qt应用程序,但前提是它们是命令行程序。一旦我用Qt和protobufs创建了一个GUI应用程序,我就会收到这个错误:[libprotobufFATAL/home/mkraus/Documents/dev/star385/build/linux-desktop-debug-libs/protobuf/src/src/google/protobuf/stubs/common.cc:78]Thisprogramwascompiledagainstversion2.6.1oftheProtocolBufferru
12