QML使用webkit加载网页报错解决方法 qml: Error creating SSL context ()

博客详细记录了使用QML加载网页时遇到的SSL问题及解决方案,通过复制Qt自带的libeay32.dll和ssleay32.dll到指定目录,成功解决了webview加载网页失败的问题。

折腾了三天!!!!!

QT简直是太坑爹了!!!!!!

QML加载网页,用webkit,webview总是加载不出来网页!!!!!!

最后打印了错误,发现是SSL不对,看网上好多人说要重新安装OPENSSL,好复杂好复杂,最后发现就是QT运行时候缺少了两个dll!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

我去,而且这两个库是Qt自带的!路径是:D:\Qt\Qt5.4.2\Tools\mingw491_32\opt\bin,libeay32.dll和ssleay32.dll给你跪了!!!!!,把这两个文件拷贝出来,考到D:\Qt\Qt5.4.2\5.4\mingw491_32\bin,再运行就没有报错了!

https://my.oschina.net/chrisforbt/blog/521650?fromerr=cgRbaELN

按这里说的做,网页加载成功!

 

import QtQuick 2.0
import QtQuick.Controls 1.0
import QtWebKit 3.0
ScrollView {
    width: 1280
    height: 720
    WebView {
        id: webview
        url: "http://www.baidu.com"
        anchors.fill: parent
        onNavigationRequested:
        {
            // detect URL scheme prefix, most likely an external link
            var schemaRE = /^\w+:/;
            if (schemaRE.test(request.url)) {
                request.action = WebView.AcceptRequest;
            } else {
                request.action = WebView.IgnoreRequest;
                // delegate request.url here
            }
        }
        onLoadingChanged: {
            console.log(loadRequest.errorCode);
            console.log(loadRequest.errorString);
            console.log(loadRequest.errorDomain);
        }
    }
}

 

使用QML时遇到'cannot open:'错误,可能有以下几个原因及解决方法: 1. **文件路径错误**: - 确认QML文件的路径是否正确。路径错误是最常见的原因之一。请检查文件路径是否正确,特别是相对路径和绝对路径的使用。 2. **文件不存在**: - 确认QML文件是否存在于指定路径。可以使用文件管理器或命令行工具(如ls或dir)来检查文件是否存在。 3. **权限问题**: - 确认当前用户是否有权限读取QML文件。可以尝试使用chmod命令更改文件权限,或使用sudo命令以管理员权限运行程序。 4. **资源文件未正确打包**: - 如果使用Qt资源文件(.qrc),请确保QML文件已正确添加到资源文件中,并且资源文件已正确包含在项目中。 5. **大小写敏感**: - 文件系统可能对大小写敏感。确认文件路径中的大小写与实际文件完全一致。 6. **编译问题**: - 确认项目已正确编译,并且所有依赖项都已正确包含。 ### 解决方法: 1. **检查文件路径**: ```cpp QFile file(":/path/to/your/file.qml"); if (!file.exists()) { qDebug() << "File does not exist!"; } ``` 2. **更改文件权限**: ```bash chmod +r /path/to/your/file.qml ``` 3. **使用绝对路径**: ```cpp QFile file(QDir::currentPath() + "/path/to/your/file.qml"); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "Cannot open file!"; } ``` 4. **检查资源文件**: ```cpp QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/path/to/your/file.qml"))); if (engine.rootObjects().isEmpty()) { qDebug() << "Failed to load QML file!"; } ``` 通过以上步骤,可以逐步排查并解决'cannot open:'错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值