基于QT4的GPX文件编辑器开发

这篇具有很好参考价值的文章主要介绍了基于QT4的GPX文件编辑器开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。

在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。

1 需求

1 新建gpx文件

2 打开gpx文件

3 保存gpx文件

4 编辑gpx头

5 编辑gpx地理点,包括插入行,删除行,编辑字段

6 地理点可视化

2 表格视图开发流程

1 新建UI工程

2 引入QCustomPlot和TableView

3 提升部件,并在UI界面下设计功能菜单。为了让代码更好读,所有的控件都用UI生成。

基于QT4的GPX文件编辑器开发,Qt,GPX

菜单目前先实现三个最基本的功能,就是新建,打开,保存。

4 新建逻辑

新建面临两种情况:

  • 1当前未打开任何文件,直接新建
  • 2打开文件且已修改但未保存,需要先保存再新建

代码如下:


    // 若当前为修改状态 询问是否保存
    if(windowTitle().contains(" *")){
        QMessageBox::StandardButton res;
        res = QMessageBox::question(this,"Note","Save changes?",
                                    QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
                                    QMessageBox::Save);
        if(res==QMessageBox::Save)
            on_actionSave_triggered();
        else if(res==QMessageBox::Cancel)
            return;
    }

    // 指定新建文件名
    QString tempName = QFileDialog::getSaveFileName(this,tr("New file"),"", "*.gpx");
    if(tempName.isEmpty())
        return;

    // 刷新文件名和模型
    fileName = tempName;
    model->removeRows(0,model->rowCount(QModelIndex()),QModelIndex());
    // 新建文件
    QFile file(fileName);
    if(!file.open(QIODevice::WriteOnly))
        return;
    file.close();
    // 更新标题*标记
    setWindowTitle(winName+" - "+fileName.replace("/","\\")+" *");

如何判断是否打开了未保存的文件?主要靠标题栏的*号。如果有*号则调用保存的槽函数。

指定文件名时,如果放弃指定就直接返回。

5 打开逻辑

打开面临两个情况,1是未打开任何文件,2是打开的文件已修改未保存。和新建一样,需要对标题栏的*号进行判断。

判断后,就打开指定文件。打开文件涉及到文件的读取。可以先看下gpx文件结构。gpx本质上是一种xml文本文件。

<?xml>

 <gpx>

        <metadata>

        <wpt lat="xxx" lon="xxx">

                 <ele>xxx</ele>

                 <time>2022-07-10T04:12:29Z</time>

                  <name>xxx</name>

                  <cmt>2022-07-10 12:12:29pm</cmt>

                  <sym>Flag, Blue</sym>

        </wpt>

        ...若干个wpt

</gpx>

基于上述结构,可以文章来源地址https://www.toymoban.com/news/detail-660837.html

到了这里,关于基于QT4的GPX文件编辑器开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用QT/C++写一个简易文本编辑器

    学习QT的小练习,先看一下目前实现的效果。   功能: 编辑文本保存为txt。 打开一个txt文本文件,可编辑可保存。 文本编辑功能:剪切,复制,粘贴,加粗,斜体,下划线,设置颜色,字体。 要点: QT Designer的UI可视化设计:基本控件布局,资源导入,菜单动作,信号槽的

    2024年02月05日
    浏览(30)
  • QT Creator更改主题和编辑器风格(附几款黑色主题)

    适用于qtcreator 打开Qt选择\\\"工具\\\"-\\\"选项\\\"; 2. 选择\\\"环境\\\"-\\\"Theme\\\"切换不同的主题风格 这里切换的是外边框的风格,如果编辑器中有同名的风格,编辑器的风格也会被切换  切换为dark风格 3. 选择\\\"文本编辑器\\\"后设置红色下拉框即可设置编辑器风格代码风格。 这里切换的是代码界面

    2024年02月09日
    浏览(29)
  • QT Creator更改主题和编辑器风格(附几款黑色主题免费下载)

    适用于qtcreator 打开Qt选择\\\"工具\\\"-\\\"选项\\\"; 2. 选择\\\"环境\\\"-\\\"Theme\\\"切换不同的主题风格 这里切换的是外边框的风格,如果编辑器中有同名的风格,编辑器的风格也会被切换  切换为dark风格 3. 选择\\\"文本编辑器\\\"后设置红色下拉框即可设置编辑器风格代码风格。 这里切换的是代码界面

    2024年02月05日
    浏览(35)
  • 基于Qt4开发曲线绘制交互软件Plotter

    目前市面上有很多曲线绘制软件,但其交互功能较差。比如,想要实现数据的交互,同步联动等,都需要大量繁琐的人工操作。所以讲想开发一款轻量级的曲线绘制交互软件。下面就以此为案例,记录一下基于Qt4的开发过程。 目录 1 需求 2 技术路线 3 开发流程 1 框架搭建 2

    2024年01月21日
    浏览(27)
  • DAY1,Qt [ 手动实现登录框(信息调试类,按钮类,行编辑器类,标签类的使用)]

    ---mychat.h---头文件 ---mychar.cpp---源文件 ---main.cpp---测试文件 结果---    

    2024年02月14日
    浏览(21)
  • 毕业设计项目——基于QT4+Opencv开发的道路偏移检测与预警系统

    完整项目地址:https://download.csdn.net/download/lijunhcn/88453342 基于QT4+Opencv的道路道路偏移检测与预警系统 开发环境:Ubuntu14.04+QT4.8.5+Opencv2.4.8 已经实现的功能: 道路偏移检测 道路偏移预警 串口读取外部传感器数据 部分源码展示:

    2024年02月03日
    浏览(25)
  • 如何使用基于GPT-4的Cursor编辑器提升开发效率

    程序员最恨两件事情:一是别人代码不写文档,二是要让自己写文档。随着 GPT-4 的到来这些都不是问题了,顺带可能连程序员都解决了。。。 之前一直觉得 AI 生成的代码也就写个面试题的水平,小打小闹,现在时代可变了。Cursor 编辑器是 GPT-4 驱动,对接了 GitHub 的 Copilot。

    2023年04月08日
    浏览(21)
  • 2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写

    ​ ​ ​ 文件上传类: form表单上传文件 --文件上传,--php接收,处理 action ---提交给谁处理 move函数移到文件 ---文件上传漏洞啊!!! ——ueditor 实现编辑器的加载 上传文件的方法: 用了编辑器,就要用编辑器去验证了(编辑器没漏洞,那就没漏洞——他有问题就有问题,

    2024年01月21日
    浏览(24)
  • 基于Android Studio编辑器上开发的一款看点新闻App

    完整资料进入【数字空间】查看——baidu搜索\\\"writebug\\\" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态,增长知识,增广见闻,顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 随着新媒体的崛起,纸媒遭受到重大打击,纸媒

    2024年02月16日
    浏览(21)
  • 【富文本编辑器实战】02 编写编辑器配置文件

    本篇文章主要内容是项目的配置文件的编写与讲解,包括菜单项配置、语言配置、总体配置。 下图是编辑器的总体结构: 编辑器大致可以分为两个部分,菜单栏(图中的 1)和下面的编辑器(图中的 4)。其中菜单栏的内容较多,每个菜单项都包含了图标,说明文字(图中的 2)。部

    2024年01月21日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包