Qt qml Network error问题

最近在学习Qt,需要调用地图,所以用到了QML,但是却遇到了这样的问题

d://qt_project//run//main.qml: Network error

现在我展示一下我的main文件的代码:

cpp 复制代码
#include <QApplication>
#include <QQuickView>
#include <QQmlContext>
#include <QGeoCoordinate>  // 添加 QGeoCoordinate 头文件
#include <QQmlEngine>
int main(int argc,char *argv[])
{
    QApplication a(argc, argv);
    QQuickView *view=new QQuickView();
    view->engine()->rootContext()->setContextProperty("center", QVariant::fromValue(QGeoCoordinate(-25.363, 131.044)));
    view->setSource(QUrl(QStringLiteral("D://QT_project//run//main.qml")));
    view->show();
    return a.exec();
}

搜索了大量的资料后最后还是问AI解决了问题,这里看第四行我这里用的是绝对路径,这就意味着,必须要对本机的资源进行访问,然后就network error了(具体原因我其实也没弄清楚,要是有佬明白可以在评论区分享一下!)

我们访问的时候,按照下面步骤将main.qml设置成QT的资源就可以了

  1. 右键添加新文件
  2. 选择Qt Resource File
  3. 右键点击并添加前缀

  4. 语言不用管,我这里把prefix设置成了/qml
  5. 将文件添加到resource/qml下面
  6. 修改main函数代码如下:
cpp 复制代码
#include <QApplication>
#include <QQuickView>
#include <QQmlContext>
#include <QGeoCoordinate>  // 添加 QGeoCoordinate 头文件
#include <QQmlEngine>
int main(int argc,char *argv[])
{
    QApplication a(argc, argv);
    QQuickView *view=new QQuickView();
    //缺什么补什么就行
    view->engine()->rootContext()->setContextProperty("center", QVariant::fromValue(QGeoCoordinate(-25.363, 131.044)));
    //
    view->setSource(QUrl(QStringLiteral("qrc:/qml/main.qml")));
    view->show();
    return a.exec();
}

其实就是修改那个Qurl那个,这里的前缀qrc就是表示是qt的资源,这样我们就可以直接在qt里面访问到main.qml而就不用借用network去访问本机的资源了。

下面给一个示例,可以自行测试一下,main函数代码不用改,main.qml代码如下:

cpp 复制代码
import QtQuick 2.15

Rectangle {
    width: 400
    height: 300
    color: "lightblue"

    Text {
        text: "Hello, World!"
        anchors.centerIn: parent
        font.pointSize: 24
    }
}

输出下面的图片就ok了。

本人还是qt的一名新手,有什么不对或者补充的知识,欢迎各位佬在评论区分享,讨论~~~~~。

相关推荐
数智顾问18 分钟前
Java坐标转换的多元实现路径:在线调用、百度与高德地图API集成及纯Java代码实现——纯Java代码实现与数学模型深度剖析
java·开发语言
陪你在童年22 分钟前
EXCEL根据类别分页预览或者直接生成PDF
数据库
Ivanqhz24 分钟前
RUST 静态生命周期和动态生命周期
开发语言
孤客网络科技工作室26 分钟前
Python - 100天从新手到大师:第二十七天Python操作PDF文件
开发语言·python·pdf
liaojuajun27 分钟前
可视化地图
开发语言·javascript·ecmascript
l1t28 分钟前
在duckdb 1.4中编译和使用postgresql协议插件duckdb-pgwire
开发语言·数据库·c++·postgresql·插件·duckdb
武子康29 分钟前
Java-138 深入浅出 MySQL Spring Boot 事务传播机制全解析:从 REQUIRED 到 NESTED 的实战详解 传播机制原理
java·大数据·数据库·spring boot·sql·mysql·事务
m0_6525459133 分钟前
10.2总结
c语言·开发语言
snpgroupcn39 分钟前
SAP S/4HANA迁移方法选哪种?选择性数据转换是否合适?企业需要考虑哪些关键因素!
运维·数据库·云计算
敲码图一乐1 小时前
流量安全——基于Sentinel实现限流,熔断,降级
java·开发语言·数据库