我有一个基于Qt QWebKit的应用程序,需要使用HTTPS与网页通信.我已经下载了QtSDK以及OpenSSL二进制文件(从这里开始).
我的问题在于部署我的应用程序.我已将相关的Qt DLL文件以及相关的OpenSSL DLL文件(libeay32.dll
和ssleay32.dll
)复制到我的应用程序目录中,但是当我尝试从我的应用程序中访问HTTPS网页时,它会失败!应用程序不会崩溃,但页面是空白的.常规HTTP页面工作得很好.
很明显,我在使用我的应用程序分发OpenSSL时出现了错误,我只是不确定我哪里出错了.
我真的不喜欢将OpenSSL安装程序与我的应用程序捆绑在一起.
我需要在python程序中获取Path for PyQt库.程序作为另一个应用程序的脚本运行,因此我的
sys.executable = 'D:/program files/visum/exe/visum115.exe
Run Code Online (Sandbox Code Playgroud)
我需要我的实际python路径(和PyQt库模块的路径)
Path = C:\Python25\Lib\site-packages\PyQt4\plugins
Run Code Online (Sandbox Code Playgroud)
我正在尝试
os.environ['PYTHONPATH']
Run Code Online (Sandbox Code Playgroud)
但我不确定它是否能够健壮.
问候!
PS.我需要它才能插入插件:
qApp.addLibaryPath('C:\Python25\Lib\site-packages\PyQt4\plugins')
Run Code Online (Sandbox Code Playgroud) 我想QWebKit
用QWebEngine
无头渲染器代替.我初始化页面load()
并连接一个插槽loadFinished()
以生成最终的.PNG图像.这曾经工作得很好,WebKit
但失败了QWebEngine
.
代码如下......
_webView = new QWebEngineView();
....
// Render the HTML to an image
QPainter painter(&image);
_webView->page()->view()->render(&painter);
painter.end();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
"请求没有窗口句柄的窗口小部件的共享上下文""QOpenGLWidget:如果没有与toplevel共享的上下文,则不能使用".
有没有人有使用渲染屏幕的例子QWebEngine
?
好的,我在与文件相同的目录中有一个Qt可执行文件logo.png
.
我打电话给以下人:
QString msg("<html><body><img src='logo.png' /></body></html>");
webView->setHtml(msg);
Run Code Online (Sandbox Code Playgroud)
这里webview
是QWebKit
指针
但是,当我执行程序时,图像不会显示.我正在从图像所在的目录执行程序... 为什么不显示?这让我疯了!
我需要将实时桌面屏幕数据(如远程桌面)传输到客户端应用程序浏览器,并且用户可以在浏览器中查看远程桌面,我正在考虑使用 webRTC 和 Qt 来实现它。我可以使用 webRTC 数据通道来传输桌面数据。唯一的问题是如何将其与QT接口。当我在互联网上查找时,我的方法很少。
使用原生c++ webRTC实现并与浏览器通信。我进行了大量搜索以获得一个可用的 C++ webRTC 应用程序,但无法成功运行。
使用 Qt webengine 和 java 脚本实现。我阅读了有关 Qt webkit 桥的文档,我希望我可以在 Qt C++ 部分和 Javascript 部分之间传递数据,而不会造成太多延迟。
而且我不确定是否存在任何好的方法。请建议我正确的方法。
拥有以下html的DOM;
<a href="?op=order">
<img class="img_button" src="picture.gif"
onMouseOver="this.src='some.gif';"
onMouseOut="this.src='some_other.gif';"
alt="" border="0">
</a>
Run Code Online (Sandbox Code Playgroud)
如何在QWebKit(特别是QWebPage)中关注链接(href).
请注意,这是一个链接的图像.
通过模拟鼠标点击我无法做到(我不想,即使我可以),因为我不使用QWebView,因此我没有渲染页面.
正如标题中所描述的,我的问题是qwebview如果它位于我的资源中,则不会正确加载html文件.如果我从资源外部加载它作为普通的本地文件,它会完美地加载它.但这对我来说不是一个选择.我想将文件与应用程序捆绑在一起.
编辑:顺便说一下,我正在谈论网络上的外部资源.(例如http://host.org/somejavascript.js)感谢您的帮助
我们正在使用QtWebKit 4.7并想知道帧加载何时进行重定向.
目前我们在QNetworkAccessManager的子类中计算传出请求,我们在其中覆盖createRequest.
这在大多数情况下都很好用,但是当第一个响应是301或302(重定向)时,它会在某处被吞噬.
我们只需要通过以下方式请求网址:
QNetworkRequest request(QUrl("http://www.twitter.com")); // 301 to twitter.com
frame->load(request);
Run Code Online (Sandbox Code Playgroud) 唯一的问题是纠正,QPrintPreviewDialog
但当打印在纸上打印时,故障仍然存在.
随着QPrintPreviewDialog
网页的工作完美,但"纸"(纸打印)从第二页"文本"和"图像"(无背景)消失(显然是错误只发生(即除第一个出现的BUG所有页面)内联元素).
请参阅:https: //bugreports.qt.io/browse/QTBUG-37240(请参阅测试用例的附件)
打印带有小字体和图像的QWebView的第一页.
显然,只有内联元素(文本和图像)才会出现问题.
注意:该错误发生在Windows XP,Windows 7,Window 7 x64,Mac OS X 10.8.3中
[编辑]
Source-html:http://jsfiddle.net/bdm6Y/2/
框架内容:http://jsfiddle.net/bdm6Y/2/show/
资源:
QPrinter p;
p.setPaperSize(QPrinter::A4);
p.setFullPage(true);
p.setResolution(300);
p.setOrientation(QPrinter::Portrait);
QPrintPreviewDialog preview(&p);
preview.setWindowTitle(ui->myWebView->page()->mainFrame()->title());
connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printPreview(QPrinter*)));
preview.exec();
...
void printPreview(QPrinter *printer) {
ui->myWebView->print(printer);
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是一个错误还是我做错了什么,它会是什么?
谢谢!
[编辑]
QT错误报告:
我想在iOS和Android上使用Qt 5.5开发和发布Qt/QML应用程序,我正试图找到一种在我的QML应用程序中显示简单Web内容(如Facebook登录页面)的方法.
我发现真正令人困惑的是,有多个类具有相似的名称但不适用于所有平台或缺少一些必需的功能.
这是我发现的选项:
http://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html
http://doc.qt.io/qt-5/qml-qtwebkit-webview.html
onNavigationRequested(request)
)QQmlApplicationEngine无法加载组件 http://badkitteh.local:8888/backend /:6模块"QtWebKit"未安装
我尝试添加webkit
并webkitwidgets
在.pro
没有成功的文件.(WTF?)
http://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html
loadingChanged(loadRequest)
).QtWebEngine::initialize()
在main()中调用.webengine
到QT
.pro文件中.这使得它在OS X上构建/启动但仍然不在iOS上.跆拳道?QQmlApplicationEngine无法加载组件 http://badkitteh.local:8888/backend /:6模块"QtWebEngine"未安装
我还没有测试Android,但似乎这QtWebView
是唯一适用于多个平台而不必使用单独的QML文件的东西.不幸的是,无法捕获URL更改/加载请求.
这令人沮丧.
我如何WebView
在不使用外部库/工具等的情况下获得基于iOS和Android的应用程序内的简单社交登录?要么我在这里遗漏了一些东西,要么现在WebView
QML/Qt 的情况真的搞砸了.为什么有这么多选择?为什么UIWebView
iOS上没有简单的包装器和Android上的等效包装器?