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

相关推荐
阿蒙Amon13 分钟前
C#正则表达式全面详解:从基础到高级应用
开发语言·正则表达式·c#
CHANG_THE_WORLD1 小时前
「macOS 系统字体收集器 (C++17 实现)」
开发语言·c++·macos
睿思达DBA_WGX1 小时前
由 DB_FILES 参数导致的 dg 服务器无法同步问题
运维·数据库·oracle
妄想出头的工业炼药师1 小时前
python和C++相互调用使用
开发语言·c++
2301_764441331 小时前
Python管理咨询数据可视化实战:收入分布与顾问利用率双轴对比图表生成脚本
开发语言·python·信息可视化
景彡先生1 小时前
C++17 并行算法:std::execution::par
开发语言·c++
nextera-void2 小时前
仓颉编程语言:从入门到精通
开发语言
oioihoii2 小时前
C++随机打乱函数:简化源码与原理深度剖析
开发语言·c++·算法
水果里面有苹果2 小时前
19-C#静态方法与静态类
java·开发语言·c#
袋鼠云数栈2 小时前
使用自然语言体验对话式MySQL数据库运维
大数据·运维·数据库·后端·mysql·ai·数据治理·数栈·data+ai