VS+Qt+C++旅游景区地图导航源码实例

  程序示例精选

VS+Qt+C++旅游景区地图导航

如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对<<VS+Qt+C++旅游景区地图导航>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件

二、使用步骤

        1. 引入库

        2. 代码实现

        3. 运行结果

三、在线协助

一、所需工具软件

1. VS, Qt

2. C++

二、使用步骤

1.引入库

#include "MainWindow.h"
#include<iostream>#include<qDebug>
#include<QFile>
#include <QBitmap>
#include <QPainter>
#include<QImage>
#include<QPixmap>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QPointF>
#include <QLineF>

2. 代码实现

代码如下:

.h*************************************
#pragma once#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"#include <qDebug>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = Q_NULLPTR);protected:private:Ui::MainWindowClass ui;private slots:void OnSearch();void mapBackGround();void initStyleSheetTitle();void paintEvent(QPaintEvent* event);void initStyleSheetMapButton();void initStyleSheetButton();void initStyleSheetLabel();};.cpp********************************
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);QObject::connect(ui.pushButton_7, SIGNAL(clicked()), this, SLOT(OnSearch()));ui.frame->setFrameStyle(QFrame::NoFrame);ui.frame_3->setFrameStyle(QFrame::NoFrame);
}void MainWindow::mouseDoubleClickEvent(QMouseEvent* event)
{int x = pos.x();int y = pos.y();qDebug() << "Double clicked at (" << x << "," << y << ")";
}void MainWindow::OnSearch()
{std::cout << "modelRun" << std::endl;QString startPos = ui.comboBox->currentText();QString endPos = ui.comboBox_2->currentText();qDebug() << "startPos: " << startPos;qDebug() << "endPos: " << endPos;if (startPos == QStringLiteral("孔子文化园") | startPos == QStringLiteral("碰碰车")){qDebug() << QStringLiteral("孔子文化园") ;// 添加两个点坐标QPointF point1(165, 228);QPointF point2(271, 218);QPointF point3(310, 95);// 设置GraphicsView的大小ui.graphicsView->setRenderHint(QPainter::Antialiasing); // 设置抗锯齿渲染ui.graphicsView->setAlignment(Qt::AlignLeft | Qt::AlignTop); // 设置对齐方式ui.graphicsView->setResizeAnchor(QGraphicsView::AnchorUnderMouse); // 设置缩放锚点为鼠标位置ui.graphicsView->setDragMode(QGraphicsView::ScrollHandDrag); // 设置拖拽模式为滚动手势拖拽QPen pen(Qt::red); // 设置线条颜色为红色pen.setWidth(2);   // 设置线宽为2// 在graphicsView_2的坐标系下绘制圆int radius = 25;int borderWidth = 5; // 壁厚pen.setWidth(borderWidth); // 设置线宽scene->addEllipse(point1.x() - (radius - borderWidth),point1.y() - (radius - borderWidth),(radius - borderWidth) * 2,(radius - borderWidth) * 2,pen, QBrush(Qt::NoBrush));scene->addEllipse(point2.x() - (radius - borderWidth),point2.y() - (radius - borderWidth),(radius - borderWidth) * 2,(radius - borderWidth) * 2,pen, QBrush(Qt::NoBrush));scene->addEllipse(point3.x() - (radius - borderWidth),point3.y() - (radius - borderWidth),(radius - borderWidth) * 2,(radius - borderWidth) * 2,pen, QBrush(Qt::NoBrush));// 绘制线段scene->addLine(QLineF(point1, point2), pen);scene->addLine(QLineF(point2, point3), pen);}}void MainWindow::initStyleSheetTitle()
{QString cssStr = "./style/style_label_title.css";QFile file(cssStr);if (file.open(QFile::ReadOnly)){QString qss = QLatin1String(file.readAll());ui.label->setStyleSheet(qss);file.close();}else {qDebug() << "Failed to open CSS file: " << file.fileName();}}void MainWindow::mapBackGround()
{QString cssStr = "./style/style_frame_mapBG.css";QString qss;QFile file(cssStr);if (file.open(QFile::ReadOnly)){qss = QLatin1String(file.readAll());//ui.frame_2->setStyleSheet(qss);file.close();}else {qDebug() << "Failed to open CSS file: " << file.fileName();}
}void MainWindow::initStyleSheetButton()
{QString cssStr = "./style/style_pushButton.css";QString qss;QFile file(cssStr);if (file.open(QFile::ReadOnly)){qss = QLatin1String(file.readAll());ui.pushButton_7->setStyleSheet(qss);file.close();}else {qDebug() << "Failed to open CSS file: " << file.fileName();}}void MainWindow::initStyleSheetMapButton()
{QString cssStr = "./style/style_pushButton_map.css";QString qss;QFile file(cssStr);if (file.open(QFile::ReadOnly)){qss = QLatin1String(file.readAll());//ui.pushButton_3->setStyleSheet(qss);//ui.pushButton_4->setStyleSheet(qss);//ui.pushButton_5->setStyleSheet(qss);//ui.pushButton_6->setStyleSheet(qss);file.close();}else {qDebug() << "Failed to open CSS file: " << file.fileName();}}

3. 运行结果

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作

当前文章连接:Python+Qt桌面端与网页端人工客服沟通工具_alicema1111的博客-CSDN博客

博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客

博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客

                         Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客

个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主

博主所有文章点这里alicema1111的博客_CSDN博客-Python,C++,网页领域博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue框架】菜单栏权限的使用与显示

前言 在 【Vue框架】Vue路由配置 中的getters.js里&#xff0c;可以看到有一个应用程序的状态&#xff08;变量&#xff09;叫 permission_routes&#xff0c;这个就是管理前端菜单栏的状态。具体代码的介绍&#xff0c;都以注释的形式来说明。 1、modules\permission.js 1…

SpringBoot 将项目打包成 jar 包

SpringBoot 将项目打包成 jar 包 一、项目打包成 jar 包 首先在 pom.xml 文件中导入 Springboot 的 maven 依赖 <!-- 将应用打包成一个可以执行的 jar 包 --> <build><plugins><plugin><groupId>org.springframework.boot</groupId><…

学习笔记整理-面向对象-02-认识函数的上下文

一、认识函数的上下文 什么是上下文 垃圾分类&#xff0c;这是非常好的习惯&#xff0c;值得表扬随手关灯&#xff0c;这是非常好的习惯&#xff0c;值得表扬遛狗栓绳&#xff0c;这是非常好的习惯&#xff0c;值得表扬课后复习&#xff0c;这是非常好的习惯&#xff0c;值得…

【数据结构】单链表OJ题(二)

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、链表分割 &#x1f4a1;方法一&#xff1a; 二、链表的回文 &#x…

hosts文件中被添加 windows10.microdone.cn

在网上搜了一圈逗说是之前下过征信中心的安全控件,是微通新成网络科技有限公司这家公司提供的,也是http://microdone.cn的运营商。后边只要使用代理,就会跳出来,所以常规处理操作就是去把浏览器上的安全控件卸载了。 参考 解决 windows10 的 代理频繁被自动篡改为windows10.mi…

利用python实现激光雷达LAS数据滤波的7种方式,使用laspy读写

激光雷达&#xff08;LiDAR&#xff09;数据在实际应用中可能受到噪声和不完美的测量影响&#xff0c;因此数据去噪和滤波方法变得至关重要&#xff0c;以提高数据质量和准确性。以下是一些常用的激光雷达数据去噪与滤波方法。 原始数据如下&#xff1a; 1. 移动平均滤波&…

kubernetes中PV和PVC

目录 一、PV、PVC简介 二、PV、PVC关系 三、创建静态PV 1.配置nfs存储 2.定义PV 3.定义PVC 4.测试访问 四、 搭建 StorageClass nfs-client-provisioner &#xff0c;实现 NFS 的动态 PV 创建 1. 配置nfs服务 2.创建 Service Account 3.使用 Deployment 来创建 NFS P…

Figma中文社区来啦,云端协作设计你准备好了吗?

Figma是改变产品设计协作方式的重要工具,但由于没有中文社区,对国内设计师的约束较大。而拥有全中文UI 界面、功能齐全的即时设计资源广场,恰好弥补了Figma的这一短板,它也将取代Figma成为设计师新宠。 1、UI组件集 Figma中文社区替代即时设计资源广场,拥有海量丰富的UI设计组…

【BEV Review】论文 Delving into the Devils of Bird’s-eye-view 2022-9 笔记

背景 一般来说&#xff0c;自动驾驶车辆的视觉传感器&#xff08;比如摄像头&#xff09;安装在车身上方或者车内后视镜上。无论哪个位置&#xff0c;摄像头所得到的都是真实世界在透视视图&#xff08;Perspective View&#xff09;下的投影&#xff08;世界坐标系到图像坐标系…

ssm柚子云电子商城java图书购物电子商务管理jsp源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 ssm柚子云电子商城 系统有2权限&#xff1a;前台、后…

SpringBoot笔记:SpringBoot 集成 Dataway 多数据源配置(二)

文章目录 前言核心代码和配置yml 配置注入多数据源常用Spi实现swagger 配置自定义 Udf指定数据源进行查询 前言 之前简单介绍了一下 Dataway 使用&#xff0c;本文继续介绍一下它的多数据源配置和使用。 核心代码和配置 yml 配置 # springboot多环境配置 #端口&#xff0c;…

JavaScript应用:五子棋游戏实战开发

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…

面试热题(螺旋矩阵)

给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素 一看到这个大家有没有想到 就是一个螺旋形状&#xff0c;那这道题我们应该怎么解决&#xff1f; 我们先来仔细的看&#xff0c;它这种螺旋形状的遍历是先【右-下-左-上】…

Docker中Tomcat部署步骤

第一次访问没有东西。

为什么我不推荐任何人用C语言作为编程启蒙第一课?

前言 写了20多年的代码&#xff0c;之前做过阿里的高级架构师&#xff0c;在技术这条路上跌跌撞撞了很多&#xff0c;我今天分享一些我个人的自学方法给各位。为什么我会说&#xff1a;不推荐任何人用C语言作为编程启蒙第一课&#xff1f; 这里有很多同学要站出来说了&#x…

实现CP指令

一、文件的打开创建 #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags); flags: O_RDONLY 只读 O_WRONLY 只写 O_RDWR 可读可写 int open(const char *pathname, int flags, mode_t mode); 如果 …

VsCode美化 - VsCode自定义 - VsCode自定义背景图

VsCode美化 - VsCode自定义 - VsCode自定义背景图&#xff1a;添加二次元老婆图到VsCode 前言 作为一个二刺螈&#xff0c;VsCode用久了&#xff0c;总觉得少了些什么。是啊&#xff0c;高效的代码生产工具中怎么能没有老婆呢&#xff1f; 那就安装一个VsCode插件把老婆添加…

章节7:Burp Intruder模块

章节7&#xff1a;Burp Intruder模块 参考资料 https://portswigger.net/burp/documentation/desktop/tools/intruder 01 Intruder模块作用与原理 原理 http://xxx.xx.com/bbs/index.php?namewuyanzu&mottogo 对请求参数进行修改&#xff0c;分析响应内容&#xff0…

Linux 内核第一版 (v0.01) 开源代码解读

探索Linux v0.01的内部结构&#xff0c;Linux内核经常被认为是一个庞大的开源软件。在撰写本文时&#xff0c;最新版本是v6.5-rc5&#xff0c;包含36M行代码。不用说&#xff0c;Linux是几十年来许多贡献者辛勤工作的成果。 Linux 内核首个开源版本 (v0.01) 的体积非常小&…

四、Dubbo扩展点加载机制

四、Dubbo扩展点加载机制 4.1 加载机制概述 Dubbo良好的扩展性与框架中针对不同场景使用合适设计模式、加载机制密不可分 Dubbo几乎所有功能组件都是基于扩展机制&#xff08;SPI&#xff09;实现的 Dubbo SPI 没有直接使用 Java SPI&#xff0c;在它思想上进行改进&#xff…