Exemple de code source de navigation sur une carte d'attraction touristique VS+Qt+C++

  Exemples de programmes en vedette

Navigation sur la carte des attractions touristiques VS+Qt+C++

Si vous devez installer l'environnement d'exploitation ou le débogage à distance, veuillez consulter votre carte de visite QQ personnelle au bas de l'article pour obtenir une assistance à distance par des techniciens professionnels !

Préface

Ce blog écrit du code pour la <<navigation sur les cartes des attractions touristiques VS+Qt+C++>>. Le code est propre, régulier et facile à lire. Recommandé pour l'apprentissage et l'application.


Annuaire d'articles

1. Logiciel outil requis

2. Étapes d'utilisation

        1. Importer la bibliothèque

        2. Mise en œuvre du code

        3. Résultats en cours d'exécution

3. Assistance en ligne

1. Logiciel outil requis

1. VS, Qt

2.C++

2. Étapes d'utilisation

1. Importer la bibliothèque

#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. Mise en œuvre du code

le code s'affiche comme ci-dessous :

.h*************************************
#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"

#include <qDebug>

class MainWindow : public QMainWindow
{
	Q_OBJECT

public:
	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. Résultats en cours d'exécution

3. Assistance en ligne :

Si vous devez installer l'environnement d'exploitation ou le débogage à distance, veuillez consulter votre carte de visite QQ personnelle au bas de l'article pour obtenir une assistance à distance par des techniciens professionnels !
1) Installation et environnement d'exécution à distance, débogage du code
2) Guide d'entrée Qt, C++, Python
3) Embellissement de l'interface
4) Production de logiciels

Lien vers l'article actuel : Python+Qt Desktop et Web-based customer service communication tool_blog d'alicema1111-CSDN blog

Articles recommandés par les blogueurs : reconnaissance faciale python comptant les personnes blog qt form-CSDN

Article recommandé par Blogger : Partage de code source de reconnaissance de fumée de flamme Python Yolov5-Blog CSDN

                         Python OpenCV identifie le nombre de personnes entrant et sortant de l'entrée piétonne_python identifie le nombre de personnes-CSDN Blog

Page d'accueil du blog personnel : blog_CSDN d'Alicema1111-Python, C++, blogueur Web

Cliquez ici pour tous les articles du blogueur : alicema1111's blog_CSDN blog-Python, C++, web blogger

Je suppose que tu aimes

Origine blog.csdn.net/alicema1111/article/details/132185998
conseillé
Classement