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

相关推荐
iCxhust14 分钟前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
Strugglingler15 分钟前
【Qt,OpenGL, RHI,Wayland 等概念梳理】
qt·opengl·wayland·rhi·x11·egl·glx
凡人叶枫21 分钟前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
努力成为AK大王31 分钟前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
AI 编程助手GPT1 小时前
用 Python 做一个世界杯赛前分析脚本:以巴西 vs 摩洛哥为例
开发语言·网络·人工智能·python·chatgpt
En^_^Joy1 小时前
Django开发:模板系统入门指南
数据库·django·sqlite
lihao lihao1 小时前
Linux信号
开发语言·c++·算法
Java患者·2 小时前
《Python 人脸识别入门实践:从人脸检测到人脸比对完整实现》
开发语言·python·opencv·目标检测·计算机视觉·目标跟踪·视觉检测
ceclar1232 小时前
C# 的任务并行库(TPL)
开发语言·c#·.net
快乐的哈士奇2 小时前
【Next.js实战①】Gmail API 按柜号检索邮件:OAuth 双 Cookie 与搜索 Fallback
开发语言·javascript·ecmascript