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的一名新手,有什么不对或者补充的知识,欢迎各位佬在评论区分享,讨论~~~~~。

相关推荐
岁忧36 分钟前
LeetCode 高频 SQL 50 题(基础版)之 【连接】部分 · 上
数据库·sql·leetcode
Logan Lie42 分钟前
Go 语言范围循环变量重用问题与 VSCode 调试解决方法
开发语言·vscode·golang
Despacito0o42 分钟前
C++面向对象编程实战:继承与派生全解析
开发语言·c++
清水白石0082 小时前
WebSockets 在实时通信中的应用与优化
开发语言·汇编·python·websockets
DBWYX4 小时前
MongoDB
数据库·mongodb
xq5148634 小时前
MongoDB基础知识(浅显)
数据库·mongodb
冷凝女子4 小时前
【QT】QString和QStringList去掉空格的方法总结
开发语言·qt
观测云4 小时前
MySQL 可观测性最佳实践
数据库·mysql
熙曦Sakura4 小时前
【Redis】Redis安装
数据库·redis·缓存
xiaogai_gai6 小时前
钉钉通讯录与金蝶云星空无缝集成的技术实现方法
大数据·数据库·钉钉