master
xiao 2 years ago
parent bf03e1b069
commit d678c6a970

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

@ -21,7 +21,7 @@ Setting::Setting(QWidget *parent)
background-repeat:no-repeat;background-position:center;").arg(QCoreApplication::applicationDirPath());
this->setStyleSheet(styleSheet);
this->resize(806, 453);
ui.finished->setStyleSheet("background-color: white;");
ui.finished->setStyleSheet("background:none;background-color: rgb(255,255,0);");
}
Setting::~Setting()

@ -0,0 +1,23 @@
#pragma once
#include <QMainWindow>
#include "ui_Setting.h"
#include <QTcpServer>
#include <QTcpSocket>
class Setting : public QMainWindow
{
Q_OBJECT
public:
Setting(QWidget *parent = nullptr);
~Setting();
QTcpServer* tcpserver;
QTcpSocket* tcpsocket;
private:
Ui::SettingClass ui;
private slots:
void on_finished_button();
};

@ -26,6 +26,11 @@
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLabel" name="Start_Timer">
<property name="styleSheet">
<string notr="true">background: none;
background-color: rgb(255, 255, 0);
color: red</string>
</property>
<property name="text">
<string>出发时间:</string>
</property>
@ -39,6 +44,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>秒</string>
</property>
@ -52,6 +61,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>时</string>
</property>
@ -65,6 +78,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>经度</string>
</property>
@ -91,6 +108,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>纬度</string>
</property>
@ -104,6 +125,11 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
background-color: rgb(255, 255, 0);
color: red</string>
</property>
<property name="text">
<string>目的地</string>
</property>
@ -117,6 +143,11 @@
<height>20</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
background-color: rgb(255, 255, 0);
color: red</string>
</property>
<property name="text">
<string>x,y,z</string>
</property>
@ -130,6 +161,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
@ -143,6 +178,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
@ -156,6 +195,10 @@
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background: none;
</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
@ -172,6 +215,11 @@
<height>29</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background: none;
background-color: rgb(255, 255, 0);
color: red</string>
</property>
<property name="text">
<string>完成</string>
</property>

Binary file not shown.

@ -45,7 +45,8 @@ UAV_UI_new::UAV_UI_new(QWidget* parent)
QByteArray jsonData = tcpsocket->readAll(); // ½ÓÊÕ JSON Êý¾Ý
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonData);
QJsonObject jsonObject = jsonDocument.object();
QString type = jsonObject.value("type").toString();
QString type = jsonObject.value("type").toString();
//如果是警告信息则说明有火灾传递给PredictionUI参数
if (type == "Alarming") {
QPixmap image_Pre(":/Fire.png");
tips* tip = new tips(image_Pre);
@ -60,25 +61,37 @@ UAV_UI_new::UAV_UI_new(QWidget* parent)
slope = jsonObject.value("slope").toDouble();
elevation = jsonObject.value("slope").toDouble();
}
//如果是设置信息,获取高度
if (type == "Set") {
heig = jsonObject.value("z").toInt();
}
});
//设置背景
QString styleSheet = QString("background-image:url(:/background_3.png);\
background-repeat:no-repeat;background-position:center;").arg(QCoreApplication::applicationDirPath());
this->setStyleSheet(styleSheet);
this->resize(1440, 720);
//消除子空间对界面背景的继承
ui.Settings->setStyleSheet("background:none; background-color:blue;color:red");
ui.connection->setStyleSheet("background:none; background-color:blue;color:red");
ui.stop->setStyleSheet("background:none; background-color:blue;color:red");
ui.action->setStyleSheet("background:none; background-color:blue;color:red");
ui.Prediction->setStyleSheet("background:none; background-color:blue;color:red");
}
UAV_UI_new::~UAV_UI_new()
{}
//connection按钮响应函数
void UAV_UI_new::on_connection_button() {
cap.open(VideoCaptureAdress);
timer->start(100);
};
//设置按钮响应函数
void UAV_UI_new::onclick_Setting_button() {
Settings_UI.show();
}
//加载网络摄像头图像
void UAV_UI_new::importImage() {
Mat image;
cap >> image;
@ -92,11 +105,13 @@ void UAV_UI_new::importImage() {
ui.display->setPixmap(showimage);
image_Pre = showimage;
}
//停止按钮响应函数
void UAV_UI_new::on_stop_button() {
timer->stop();
cap.release();
ui.display->clear();
}
//预测按钮响应函数
void UAV_UI_new::on_predict_button() {
QPixmap image_Pre(":/Fire.png");
Predict_UI = new Prediction(image_Pre, start_pos_x,start_pos_y,length,wid,100);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by UAV_UI_new.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by UAV_UI_new1.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

@ -0,0 +1,36 @@
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\tips.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\main.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc_uav_ui_new.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc_setting.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\qrc_uav_ui_new.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc_tips.obj
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\vc143.pdb
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\setting.obj
d:\software\uav_ui\uav_ui_new\x64\debug\uav_ui_new.exe
d:\software\uav_ui\uav_ui_new\x64\debug\uav_ui_new.ilk
d:\software\uav_ui\uav_ui_new\x64\debug\uav_ui_new.pdb
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc\moc_uav_ui_new.cpp
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new1.res
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\rcc\qrc_uav_ui_new.cpp
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uic\ui_setting.h
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uic\ui_tips.h
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uic\ui_uav_ui_new.h
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc\moc_tips.cpp
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\moc\moc_setting.cpp
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\cl.command.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\cl.read.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\cl.write.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\link.command.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\link.read.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\link.write.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\moc.read.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\moc.write.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\rc.command.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\rc.read.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\rc.write.1.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\rcc.read.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\rcc.write.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\uav_ui_new.write.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\uic.read.1u.tlog
d:\software\uav_ui\uav_ui_new\uav_ui_new\x64\debug\uav_ui_new.tlog\uic.write.1u.tlog

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>D:\software\UAV_UI\UAV_UI_new\x64\Debug\UAV_UI_new.exe</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>

@ -0,0 +1,105 @@
 Setting.cpp
UAV_UI_new.cpp
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x249 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x24b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x24c 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x24e 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x6a3 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x6a4 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x6a5 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x6aa 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7b1 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7b2 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7b4 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7bb 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7bd 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x7be 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x88b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x88d 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x88e 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x88f 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x891 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x892 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x893 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x894 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x899 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x89a 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x89b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x89f 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8a1 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8a3 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8a4 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8a8 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8a9 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8aa 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8ab 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8ae 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8bb 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8bc 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x8be 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc2b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc2d 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc2e 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc2f 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc31 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc33 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc35 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc39 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc3a 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc3b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc3c 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xc42 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcb4 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcb6 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcb8 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcb9 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcba 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xcbb 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdc6 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdc8 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdc9 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdca 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdcc 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdcf 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd2 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd3 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd6 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd7 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd8 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdd9 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xdda 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xddf 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfb9 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfba 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfbd 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfc1 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfc2 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0xfc3 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1033 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1035 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1037 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1038 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x103b 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x103f 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1040 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1041 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1094 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1095 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1097 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1099 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x109a 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x109c 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x109e 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x10a4 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1244 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1245 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x1248 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x124c 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x124d 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x124e 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x12c0 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x12c6 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x12ca 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x12cb 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
D:\software\UAV_UI\UAV_UI_new\UAV_UI_new\UAV_UI_new.cpp(1,1): warning C4828: 文件包含在偏移 0x12cc 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。
UAV_UI_new.vcxproj -> D:\software\UAV_UI\UAV_UI_new\x64\Debug\UAV_UI_new.exe

@ -0,0 +1,2 @@
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.35.32215:TargetPlatformVersion=10.0.22000.0:
Debug|x64|D:\software\UAV_UI\UAV_UI_new\|

Binary file not shown.

@ -0,0 +1,99 @@
/****************************************************************************
** Meta object code from reading C++ file 'Prediction.h'
**
** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../Prediction.h"
#include <QtGui/qtextcursor.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Prediction.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 68
#error "This file was generated using the moc from 6.2.4. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Prediction_t {
const uint offsetsAndSize[2];
char stringdata0[11];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_Prediction_t, stringdata0) + ofs), len
static const qt_meta_stringdata_Prediction_t qt_meta_stringdata_Prediction = {
{
QT_MOC_LITERAL(0, 10) // "Prediction"
},
"Prediction"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Prediction[] = {
// content:
10, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Prediction::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
(void)_o;
(void)_id;
(void)_c;
(void)_a;
}
const QMetaObject Prediction::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_Prediction.offsetsAndSize,
qt_meta_data_Prediction,
qt_static_metacall,
nullptr,
qt_incomplete_metaTypeArray<qt_meta_stringdata_Prediction_t
, QtPrivate::TypeAndForceComplete<Prediction, std::true_type>
>,
nullptr
} };
const QMetaObject *Prediction::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Prediction::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Prediction.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int Prediction::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,123 @@
/****************************************************************************
** Meta object code from reading C++ file 'Setting.h'
**
** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../Setting.h"
#include <QtGui/qtextcursor.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Setting.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 68
#error "This file was generated using the moc from 6.2.4. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Setting_t {
const uint offsetsAndSize[6];
char stringdata0[28];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_Setting_t, stringdata0) + ofs), len
static const qt_meta_stringdata_Setting_t qt_meta_stringdata_Setting = {
{
QT_MOC_LITERAL(0, 7), // "Setting"
QT_MOC_LITERAL(8, 18), // "on_finished_button"
QT_MOC_LITERAL(27, 0) // ""
},
"Setting\0on_finished_button\0"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Setting[] = {
// content:
10, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags, initial metatype offsets
1, 0, 20, 2, 0x08, 1 /* Private */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void Setting::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<Setting *>(_o);
(void)_t;
switch (_id) {
case 0: _t->on_finished_button(); break;
default: ;
}
}
(void)_a;
}
const QMetaObject Setting::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_Setting.offsetsAndSize,
qt_meta_data_Setting,
qt_static_metacall,
nullptr,
qt_incomplete_metaTypeArray<qt_meta_stringdata_Setting_t
, QtPrivate::TypeAndForceComplete<Setting, std::true_type>
, QtPrivate::TypeAndForceComplete<void, std::false_type>
>,
nullptr
} };
const QMetaObject *Setting::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Setting::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Setting.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int Setting::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<QMetaType *>(_a[0]) = QMetaType();
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,141 @@
/****************************************************************************
** Meta object code from reading C++ file 'UAV_UI_new.h'
**
** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../UAV_UI_new.h"
#include <QtGui/qtextcursor.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'UAV_UI_new.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 68
#error "This file was generated using the moc from 6.2.4. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_UAV_UI_new_t {
const uint offsetsAndSize[14];
char stringdata0[101];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_UAV_UI_new_t, stringdata0) + ofs), len
static const qt_meta_stringdata_UAV_UI_new_t qt_meta_stringdata_UAV_UI_new = {
{
QT_MOC_LITERAL(0, 10), // "UAV_UI_new"
QT_MOC_LITERAL(11, 20), // "on_connection_button"
QT_MOC_LITERAL(32, 0), // ""
QT_MOC_LITERAL(33, 14), // "on_stop_button"
QT_MOC_LITERAL(48, 11), // "importImage"
QT_MOC_LITERAL(60, 22), // "onclick_Setting_button"
QT_MOC_LITERAL(83, 17) // "on_predict_button"
},
"UAV_UI_new\0on_connection_button\0\0"
"on_stop_button\0importImage\0"
"onclick_Setting_button\0on_predict_button"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UAV_UI_new[] = {
// content:
10, // revision
0, // classname
0, 0, // classinfo
5, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags, initial metatype offsets
1, 0, 44, 2, 0x08, 1 /* Private */,
3, 0, 45, 2, 0x08, 2 /* Private */,
4, 0, 46, 2, 0x08, 3 /* Private */,
5, 0, 47, 2, 0x08, 4 /* Private */,
6, 0, 48, 2, 0x08, 5 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void UAV_UI_new::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<UAV_UI_new *>(_o);
(void)_t;
switch (_id) {
case 0: _t->on_connection_button(); break;
case 1: _t->on_stop_button(); break;
case 2: _t->importImage(); break;
case 3: _t->onclick_Setting_button(); break;
case 4: _t->on_predict_button(); break;
default: ;
}
}
(void)_a;
}
const QMetaObject UAV_UI_new::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_UAV_UI_new.offsetsAndSize,
qt_meta_data_UAV_UI_new,
qt_static_metacall,
nullptr,
qt_incomplete_metaTypeArray<qt_meta_stringdata_UAV_UI_new_t
, QtPrivate::TypeAndForceComplete<UAV_UI_new, std::true_type>
, QtPrivate::TypeAndForceComplete<void, std::false_type>, QtPrivate::TypeAndForceComplete<void, std::false_type>, QtPrivate::TypeAndForceComplete<void, std::false_type>, QtPrivate::TypeAndForceComplete<void, std::false_type>, QtPrivate::TypeAndForceComplete<void, std::false_type>
>,
nullptr
} };
const QMetaObject *UAV_UI_new::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UAV_UI_new::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_UAV_UI_new.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int UAV_UI_new::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 5)
qt_static_metacall(this, _c, _id, _a);
_id -= 5;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 5)
*reinterpret_cast<QMetaType *>(_a[0]) = QMetaType();
_id -= 5;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,99 @@
/****************************************************************************
** Meta object code from reading C++ file 'tips.h'
**
** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../tips.h"
#include <QtGui/qtextcursor.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'tips.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 68
#error "This file was generated using the moc from 6.2.4. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_tips_t {
const uint offsetsAndSize[2];
char stringdata0[5];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_tips_t, stringdata0) + ofs), len
static const qt_meta_stringdata_tips_t qt_meta_stringdata_tips = {
{
QT_MOC_LITERAL(0, 4) // "tips"
},
"tips"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_tips[] = {
// content:
10, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void tips::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
(void)_o;
(void)_id;
(void)_c;
(void)_a;
}
const QMetaObject tips::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_tips.offsetsAndSize,
qt_meta_data_tips,
qt_static_metacall,
nullptr,
qt_incomplete_metaTypeArray<qt_meta_stringdata_tips_t
, QtPrivate::TypeAndForceComplete<tips, std::true_type>
>,
nullptr
} };
const QMetaObject *tips::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *tips::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_tips.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int tips::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,60 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;D:\QT111\6.2.4\msvc2019_64\include;D:\QT111\6.2.4\msvc2019_64\include\QtWidgets;D:\QT111\6.2.4\msvc2019_64\include\QtGui;D:\QT111\6.2.4\msvc2019_64\include\QtNetwork;D:\QT111\6.2.4\msvc2019_64\include\QtCore;C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;/include;D:\QT111\6.2.4\msvc2019_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_>stdcpp17</Qt_STDCPP_>
<Qt_RUNTIME_>MultiThreadedDebugDLL</Qt_RUNTIME_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8</Qt_CL_OPTIONS_>
<Qt_LIBS_>D:\QT111\6.2.4\msvc2019_64\lib\Qt6Widgetsd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Guid.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Networkd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Cored.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6EntryPointd.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>D:/QT111/Docs/Qt-6.2.4</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>D:/QT111/6.2.4/msvc2019_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>D:/QT111/6.2.4/msvc2019_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>D:/QT111/6.2.4/msvc2019_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>D:/QT111/6.2.4/msvc2019_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_QML_>D:/QT111/6.2.4/msvc2019_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>D:/QT111/6.2.4/msvc2019_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>D:/QT111/Examples/Qt-6.2.4</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>D:/QT111/Examples/Qt-6.2.4</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBEXECS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_HOST_LIBEXECS_>
<QMake_QT_HOST_LIBS_>D:/QT111/6.2.4/msvc2019_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>6.2.4</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);x64\Debug\moc;x64\Debug\uic</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>6.2.4</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;network;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;RUNTIME=/Project/ItemDefinitionGroup/ClCompile/RuntimeLibrary;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>6.2.4</QtVersion>
<QtVersionMajor>6</QtVersionMajor>
<QtVersionMinor>2</QtVersionMinor>
<QtVersionPatch>4</QtVersionPatch>
</PropertyGroup>
</Project>

@ -0,0 +1,29 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1935
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193532216
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER
QMAKE_CXX.INCDIRS = \
D:\\OpenCV\\opencv\\build\\include\\opencv2 \
D:\\OpenCV\\opencv\\build\\include \
"D:\\Visual Studio\\2019\\community\\VC\\Tools\\MSVC\\14.35.32215\\include" \
"D:\\Visual Studio\\2019\\community\\VC\\Tools\\MSVC\\14.35.32215\\atlmfc\\include" \
"D:\\Visual Studio\\2019\\community\\VC\\Auxiliary\\VS\\include" \
"D:\\Windows Kits\\10\\Include\\10.0.22000.0\\ucrt" \
"D:\\Visual Studio\\2019\\community\\VC\\Auxiliary\\VS\\UnitTest\\include" \
"D:\\Windows Kits\\10\\Include\\10.0.22000.0\\um" \
"D:\\Windows Kits\\10\\Include\\10.0.22000.0\\shared" \
"D:\\Windows Kits\\10\\Include\\10.0.22000.0\\winrt" \
"D:\\Windows Kits\\10\\Include\\10.0.22000.0\\cppwinrt" \
Include\\um
QMAKE_CXX.LIBDIRS = \
D:\\OpenCV\\opencv\\build\\x64\\vc15\\lib \
"D:\\Visual Studio\\2019\\community\\VC\\Tools\\MSVC\\14.35.32215\\lib\\x64" \
"D:\\Visual Studio\\2019\\community\\VC\\Tools\\MSVC\\14.35.32215\\atlmfc\\lib\\x64" \
"D:\\Visual Studio\\2019\\community\\VC\\Auxiliary\\VS\\lib\\x64" \
"D:\\Windows Kits\\10\\lib\\10.0.22000.0\\ucrt\\x64" \
"D:\\Visual Studio\\2019\\community\\VC\\Auxiliary\\VS\\UnitTest\\lib" \
"D:\\Windows Kits\\10\\lib\\10.0.22000.0\\um\\x64" \
lib\\um\\x64

@ -0,0 +1 @@
This is a dummy file needed to create ./moc_predefs.h

@ -0,0 +1,25 @@
QT_SYSROOT:
QT_INSTALL_PREFIX:D:/QT111/6.2.4/msvc2019_64
QT_INSTALL_ARCHDATA:D:/QT111/6.2.4/msvc2019_64
QT_INSTALL_DATA:D:/QT111/6.2.4/msvc2019_64
QT_INSTALL_DOCS:D:/QT111/Docs/Qt-6.2.4
QT_INSTALL_HEADERS:D:/QT111/6.2.4/msvc2019_64/include
QT_INSTALL_LIBS:D:/QT111/6.2.4/msvc2019_64/lib
QT_INSTALL_LIBEXECS:D:/QT111/6.2.4/msvc2019_64/bin
QT_INSTALL_BINS:D:/QT111/6.2.4/msvc2019_64/bin
QT_INSTALL_TESTS:D:/QT111/6.2.4/msvc2019_64/tests
QT_INSTALL_PLUGINS:D:/QT111/6.2.4/msvc2019_64/plugins
QT_INSTALL_QML:D:/QT111/6.2.4/msvc2019_64/qml
QT_INSTALL_TRANSLATIONS:D:/QT111/6.2.4/msvc2019_64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:D:/QT111/Examples/Qt-6.2.4
QT_INSTALL_DEMOS:D:/QT111/Examples/Qt-6.2.4
QT_HOST_PREFIX:D:/QT111/6.2.4/msvc2019_64
QT_HOST_DATA:D:/QT111/6.2.4/msvc2019_64
QT_HOST_BINS:D:/QT111/6.2.4/msvc2019_64/bin
QT_HOST_LIBEXECS:D:/QT111/6.2.4/msvc2019_64/bin
QT_HOST_LIBS:D:/QT111/6.2.4/msvc2019_64/lib
QMAKE_SPEC:win32-msvc
QMAKE_XSPEC:win32-msvc
QMAKE_VERSION:3.1
QT_VERSION:6.2.4

@ -0,0 +1 @@
Info: creating stash file C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi\.qmake.stash

@ -0,0 +1,2 @@
CONFIG += no_fixpath
QT += core gui network widgets

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid></ProjectGuid>
<RootNamespace>qtvars</RootNamespace>
<Keyword>Qt4VSv1.0</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="Configuration">
<PlatformToolset>v143</PlatformToolset>
<OutputDirectory>.\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<PrimaryOutput>qtvars</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">.\</OutDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">qtvars</TargetName>
<IgnoreImportLibrary Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">true</IgnoreImportLibrary>
</PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">
<ClCompile>
<AdditionalIncludeDirectories>C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;D:\QT111\6.2.4\msvc2019_64\include;D:\QT111\6.2.4\msvc2019_64\include\QtWidgets;D:\QT111\6.2.4\msvc2019_64\include\QtGui;D:\QT111\6.2.4\msvc2019_64\include\QtNetwork;D:\QT111\6.2.4\msvc2019_64\include\QtCore;C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;/include;D:\QT111\6.2.4\msvc2019_64\mkspecs\win32-msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>.\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<LanguageStandard>stdcpp17</LanguageStandard>
<ObjectFileName>.\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
</ClCompile>
<Link>
<AdditionalDependencies>D:\QT111\6.2.4\msvc2019_64\lib\Qt6Widgetsd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Guid.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Networkd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Cored.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6EntryPointd.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\qtvars.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">D:\QT111\6.2.4\msvc2019_64\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">cl -BxD:\QT111\6.2.4\msvc2019_64\bin\qmake.exe -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -Zi -MDd -std:c++17 -utf-8 -W0 -E D:\QT111\6.2.4\msvc2019_64\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;moc_predefs.h</Command>
<Message Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">Generate moc_predefs.h</Message>
<Outputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>

@ -0,0 +1,60 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;D:\QT111\6.2.4\msvc2019_64\include;D:\QT111\6.2.4\msvc2019_64\include\QtWidgets;D:\QT111\6.2.4\msvc2019_64\include\QtGui;D:\QT111\6.2.4\msvc2019_64\include\QtNetwork;D:\QT111\6.2.4\msvc2019_64\include\QtCore;C:\Users\87334\AppData\Local\Temp\lm30cisv.vpi;/include;D:\QT111\6.2.4\msvc2019_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_>stdcpp17</Qt_STDCPP_>
<Qt_RUNTIME_>MultiThreadedDebugDLL</Qt_RUNTIME_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8</Qt_CL_OPTIONS_>
<Qt_LIBS_>D:\QT111\6.2.4\msvc2019_64\lib\Qt6Widgetsd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Guid.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Networkd.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6Cored.lib;D:\QT111\6.2.4\msvc2019_64\lib\Qt6EntryPointd.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>D:/QT111/Docs/Qt-6.2.4</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>D:/QT111/6.2.4/msvc2019_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>D:/QT111/6.2.4/msvc2019_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>D:/QT111/6.2.4/msvc2019_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>D:/QT111/6.2.4/msvc2019_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_QML_>D:/QT111/6.2.4/msvc2019_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>D:/QT111/6.2.4/msvc2019_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>D:/QT111/Examples/Qt-6.2.4</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>D:/QT111/Examples/Qt-6.2.4</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>D:/QT111/6.2.4/msvc2019_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBEXECS_>D:/QT111/6.2.4/msvc2019_64/bin</QMake_QT_HOST_LIBEXECS_>
<QMake_QT_HOST_LIBS_>D:/QT111/6.2.4/msvc2019_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>6.2.4</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);x64\Debug\moc;x64\Debug\uic</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>6.2.4</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;network;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;RUNTIME=/Project/ItemDefinitionGroup/ClCompile/RuntimeLibrary;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>6.2.4</QtVersion>
<QtVersionMajor>6</QtVersionMajor>
<QtVersionMinor>2</QtVersionMinor>
<QtVersionPatch>4</QtVersionPatch>
</PropertyGroup>
</Project>

@ -0,0 +1,449 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
****************************************************************************
**
** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt VS Tools.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************
-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="QPropertyData&lt;*&gt;">
<DisplayString>{val}</DisplayString>
<Expand>
<Item Name="[value]">val</Item>
</Expand>
</Type>
<Type Name="QQuickItemPrivate">
<Intrinsic Name="_hasExtraData" Expression="extra.d.d != 0" />
<Intrinsic Name="_extraData" Expression="(*(ExtraData*)extra.d.d)" />
<Intrinsic Name="_objectName" Expression="(extraData-&gt;objectName).val.d.ptr" />
<DisplayString Condition="_hasExtraData()">{{ x = {x,g}, y = {y,g}, z = {_extraData().z,g}, width = {width,g}, height = {height,g} }}</DisplayString>
<DisplayString>{{ x = {x,g}, y = {y,g}, width = {width,g}, height = {height,g} }}</DisplayString>
<Expand>
<Item Name="x">x</Item>
<Item Name="y">y</Item>
<Item Name="z" Condition="_hasExtraData()">_extraData().z</Item>
<Item Name="scale" Condition="_hasExtraData()">_extraData().scale</Item>
<Item Name="rotation" Condition="_hasExtraData()">_extraData().rotation</Item>
<Item Name="opacity" Condition="_hasExtraData()">_extraData().opacity</Item>
<Item Name="width">width</Item>
<Item Name="height">height</Item>
<Item Name="implicitWidth">implicitWidth</Item>
<Item Name="implicitHeight">implicitHeight</Item>
<Item Name="visible">effectiveVisible</Item>
<Item Name="enabled">explicitEnable</Item>
<Item Name="objectName" Condition="_objectName() != 0">_objectName(),na</Item>
<Item Name="parentItem">parentItem</Item>
<Item Name="childItems">childItems, nr</Item>
</Expand>
</Type>
<Type Name="QQuickItem">
<DisplayString>{d_ptr.d,na}</DisplayString>
<Expand>
<ExpandedItem>d_ptr.d</ExpandedItem>
</Expand>
</Type>
<Type Name="QUuid">
<DisplayString>{{{data1,Xb}-{data2,Xb}-{data3,Xb}-{(data4[0]),nvoXb}{(data4[1]),nvoXb}-{(data4[2]),nvoXb}{(data4[3]),nvoXb}{(data4[4]),nvoXb}{(data4[5]),nvoXb}{(data4[6]),nvoXb}{(data4[7]),nvoXb}}}</DisplayString>
</Type>
<Type Name="QSpecialInteger&lt;*&gt;">
<DisplayString>{val}</DisplayString>
<Expand>
<Item Name="[value]">val</Item>
</Expand>
</Type>
<Type Name="QBasicAtomicInteger&lt;*&gt;">
<DisplayString>{_q_value}</DisplayString>
<Expand>
<Item Name="[value]">_q_value</Item>
</Expand>
</Type>
<Type Name="QBasicAtomicPointer&lt;*&gt;">
<Intrinsic Name="isNull" Expression="value()==0" />
<Intrinsic Name="value" Expression="_q_value.value()" />
<DisplayString Condition="isNull()">empty</DisplayString>
<DisplayString Condition="!isNull()">{_q_value}</DisplayString>
<Expand>
<Item Name=" " Condition="!isNull()">*value()</Item>
</Expand>
</Type>
<Type Name="QPoint">
<AlternativeType Name="QPointF"/>
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
</Expand>
</Type>
<Type Name="QRect">
<DisplayString>{{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}</DisplayString>
<Expand>
<Item Name="[x]">x1</Item>
<Item Name="[y]">y1</Item>
<Item Name="[width]">x2 - x1 + 1</Item>
<Item Name="[height]">y2 - y1 + 1</Item>
</Expand>
</Type>
<Type Name="QRectF">
<DisplayString>{{ x = {xp}, y = {yp}, width = {w}, height = {h} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[width]">w</Item>
<Item Name="[height]">h</Item>
</Expand>
</Type>
<Type Name="QSize">
<AlternativeType Name="QSizeF"/>
<DisplayString>{{ width = {wd}, height = {ht} }}</DisplayString>
<Expand>
<Item Name="[width]">wd</Item>
<Item Name="[height]">ht</Item>
</Expand>
</Type>
<Type Name="QLine">
<AlternativeType Name="QLineF"/>
<DisplayString>{{ start point = {pt1}, end point = {pt2} }}</DisplayString>
<Expand>
<Synthetic Name="[start point]">
<DisplayString>{pt1}</DisplayString>
<Expand>
<ExpandedItem>pt1</ExpandedItem>
</Expand>
</Synthetic>
<Synthetic Name="[end point]">
<DisplayString>{pt2}</DisplayString>
<Expand>
<ExpandedItem>pt2</ExpandedItem>
</Expand>
</Synthetic>
</Expand>
</Type>
<Type Name="QPolygon">
<DisplayString>{{ size={d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>(QPoint*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QPolygonF">
<DisplayString>{{ size={d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[closed]">
d-&gt;size &gt; 0
&amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).xp
== (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).xp)
&amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).yp
== (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).yp)
</Item>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>(QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QVector2D">
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
</Expand>
</Type>
<Type Name="QVector3D">
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[z]">zp</Item>
</Expand>
</Type>
<Type Name="QVector4D">
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[z]">zp</Item>
<Item Name="[w]">wp</Item>
</Expand>
</Type>
<Type Name="QMatrix">
<DisplayString>
{{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }}
</DisplayString>
<Expand>
<Item Name="[m11]">_m11</Item>
<Item Name="[m12]">_m12</Item>
<Item Name="[m21]">_m21</Item>
<Item Name="[m22]">_m22</Item>
<Item Name="[dx]">_dx</Item>
<Item Name="[dy]">_dy</Item>
</Expand>
</Type>
<Type Name="QMatrix4x4">
<DisplayString>
{{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
</DisplayString>
<Expand>
<Item Name="[m11]">m[0][0]</Item>
<Item Name="[m12]">m[1][0]</Item>
<Item Name="[m13]">m[2][0]</Item>
<Item Name="[m14]">m[3][0]</Item>
<Item Name="[m21]">m[0][1]</Item>
<Item Name="[m22]">m[1][1]</Item>
<Item Name="[m23]">m[2][1]</Item>
<Item Name="[m24]">m[3][1]</Item>
<Item Name="[m31]">m[0][2]</Item>
<Item Name="[m32]">m[1][2]</Item>
<Item Name="[m33]">m[2][2]</Item>
<Item Name="[m34]">m[3][2]</Item>
<Item Name="[m41]">m[0][3]</Item>
<Item Name="[m42]">m[1][3]</Item>
<Item Name="[m43]">m[2][3]</Item>
<Item Name="[m44]">m[3][3]</Item>
</Expand>
</Type>
<Type Name="QSizePolicy">
<DisplayString>
{{ horizontal = {static_cast&lt;Policy&gt;(bits.horPolicy)}, vertical = {static_cast&lt;Policy&gt;(bits.verPolicy)}, type = {ControlType(1 &lt;&lt; bits.ctype)} }}
</DisplayString>
<Expand>
<Synthetic Name="[vertical policy]">
<DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.verPolicy)}</DisplayString>
</Synthetic>
<Synthetic Name="[horizontal policy]">
<DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.horPolicy)}</DisplayString>
</Synthetic>
<Synthetic Name="[control type]">
<DisplayString>QSizePolicy::ControlType::{ControlType(1 &lt;&lt; bits.ctype)}</DisplayString>
</Synthetic>
<Synthetic Name="[expanding directions]">
<DisplayString
Condition="(static_cast&lt;Policy&gt;(bits.verPolicy) &amp; ExpandFlag)">
Qt::Vertical (2)
</DisplayString>
<DisplayString
Condition="(static_cast&lt;Policy&gt;(bits.horPolicy) &amp; ExpandFlag)">
Qt::Horizontal (1)
</DisplayString>
</Synthetic>
<Item Name="[vertical stretch]">static_cast&lt;int&gt;(bits.verStretch)</Item>
<Item Name="[horizontal stretch]">static_cast&lt;int&gt;(bits.horStretch)</Item>
<Item Name="[has height for width]">bits.hfw == 1</Item>
<Item Name="[has width for height]">bits.wfh == 1</Item>
</Expand>
</Type>
<Type Name="QChar">
<DisplayString>{ucs,c}</DisplayString>
<StringView>ucs,c</StringView>
<Expand>
<Item Name="[latin 1]">ucs > 0xff ? '\0' : char(ucs),c</Item>
<Item Name="[unicode]">ucs,c</Item>
</Expand>
</Type>
<Type Name="QString">
<DisplayString>&quot;{(reinterpret_cast&lt;unsigned short*&gt;(d.ptr)),sub}&quot;</DisplayString>
<StringView>(reinterpret_cast&lt;unsigned short*&gt;(d.ptr)),sub</StringView>
<Expand>
<Item Name="[size]">d.size</Item>
<ArrayItems>
<Size>d.size</Size>
<ValuePointer>d.ptr</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QStringRef">
<DisplayString Condition="m_string == nullptr">{m_string,[m_size]} u""</DisplayString>
<DisplayString Condition="m_string != nullptr">{m_string-&gt;d.ptr+m_position,[m_size]}</DisplayString>
<StringView Condition="m_string == nullptr">""</StringView>
<StringView Condition="m_string != nullptr">m_string,[m_position+m_size]</StringView>
<Expand>
<Item Name="[position]" ExcludeView="simple">m_position</Item>
<Item Name="[size]" ExcludeView="simple">m_size</Item>
<ArrayItems Condition="m_string != nullptr">
<Size>m_size</Size>
<ValuePointer>m_string-&gt;d.ptr+m_position</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QStringView">
<DisplayString>{m_data,[m_size]}</DisplayString>
<StringView>m_data,[m_size]</StringView>
<Expand>
<Item Name="[size]" ExcludeView="simple">m_size</Item>
<ArrayItems>
<Size>m_size</Size>
<ValuePointer>m_data</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QByteArray">
<DisplayString>&quot;{((reinterpret_cast&lt;char*&gt;(d.ptr))),sb}&quot;</DisplayString>
<StringView>((reinterpret_cast&lt;char*&gt;(d.ptr))),sb</StringView>
<Expand>
<Item Name="[size]">d.size</Item>
<ArrayItems>
<Size>d.size</Size>
<ValuePointer>d.ptr</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QUrl">
<Intrinsic Name="isEmpty" Expression="size==0">
<Parameter Name="size" Type="int"/>
</Intrinsic>
<Intrinsic Name="memberOffset" Expression="sizeof(QAtomicInt) + sizeof(int) + (sizeof(QString) * count)">
<Parameter Name="count" Type="int"/>
</Intrinsic>
<Intrinsic Name="scheme" Expression="*((QString*)(((char*)(d) + memberOffset(0))))" />
<Intrinsic Name="username" Expression="*((QString*)(((char*)(d) + memberOffset(1))))" />
<Intrinsic Name="password" Expression="*((QString*)(((char*)(d) + memberOffset(2))))" />
<Intrinsic Name="host" Expression="*((QString*)(((char*)(d) + memberOffset(3))))" />
<Intrinsic Name="path" Expression="*((QString*)(((char*)(d) + memberOffset(4))))" />
<Intrinsic Name="query" Expression="*((QString*)(((char*)(d) + memberOffset(5))))" />
<Intrinsic Name="fragment" Expression="*((QString*)(((char*)(d) + memberOffset(6))))" />
<DisplayString Condition="!isEmpty(scheme().d-&gt;size)">{scheme()}://{host()}{path()}</DisplayString>
<DisplayString Condition="isEmpty(scheme().d-&gt;size)">{path()}</DisplayString>
<Expand>
<Item Name="[scheme]">scheme()</Item>
<Item Name="[username]">username()</Item>
<Item Name="[password]">password()</Item>
<Item Name="[host]">host()</Item>
<Item Name="[path]">path()</Item>
<Item Name="[query]">query()</Item>
<Item Name="[fragment]">fragment()</Item>
</Expand>
</Type>
<Type Name="QDate">
<DisplayString>{{ julian day = {jd} }}</DisplayString>
</Type>
<Type Name="QTime">
<Intrinsic Name="hour" Expression="mds / 3600000" />
<Intrinsic Name="minute" Expression="(mds % 3600000) / 60000" />
<Intrinsic Name="second" Expression="(mds / 1000) % 60" />
<Intrinsic Name="millisecond" Expression="mds % 1000" />
<DisplayString Condition="mds == 1">{{ millisecond = {mds} }}</DisplayString>
<DisplayString Condition="mds != 1">{{ milliseconds = {mds} }}</DisplayString>
<Expand>
<Item Name="[hour]"
Condition="(mds / 3600000) == 1">hour(), d</Item>
<Item Name="[hours]"
Condition="(mds / 3600000) != 1">hour(), d</Item>
<Item Name="[minute]"
Condition="((mds % 3600000) / 60000) == 1">minute(), d</Item>
<Item Name="[minutes]"
Condition="((mds % 3600000) / 60000) != 1">minute(), d</Item>
<Item Name="[second]"
Condition="((mds / 1000) % 60) == 1">second(), d</Item>
<Item Name="[seconds]"
Condition="((mds / 1000) % 60) != 1">second(), d</Item>
<Item Name="[millisecond]"
Condition="(mds % 1000) == 1">millisecond(), d</Item>
<Item Name="[milliseconds]"
Condition="(mds % 1000) != 1">millisecond(), d</Item>
</Expand>
</Type>
<Type Name="QPair&lt;*,*&gt;">
<DisplayString>({first}, {second})</DisplayString>
<Expand>
<Item Name="[first]">first</Item>
<Item Name="[second]">second</Item>
</Expand>
</Type>
<Type Name="QList&lt;*&gt;">
<AlternativeType Name="QVector&lt;*&gt;"/>
<DisplayString>{{ size={d.size} }}</DisplayString>
<Expand>
<ArrayItems>
<Size>d.size</Size>
<ValuePointer>reinterpret_cast&lt;$T1*&gt;(d.ptr)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QVarLengthArray&lt;*&gt;">
<DisplayString>{{ size={s} }}</DisplayString>
<Expand>
<Item Name="[capacity]">a</Item>
<ArrayItems>
<Size>s</Size>
<ValuePointer>ptr</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QMap&lt;*,*&gt;">
<AlternativeType Name="QMultiMap&lt;*,*&gt;"/>
<DisplayString>{{ size={d.d-&gt;m._Mypair._Myval2._Myval2._Mysize} }}</DisplayString>
<Expand>
<Item Name="[std::map]">d.d-&gt;m</Item>
</Expand>
</Type>
<Type Name="QHash&lt;*,*&gt;">
<AlternativeType Name="QMultiHash&lt;*,*&gt;"/>
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
</Expand>
</Type>
</AutoVisualizer>

File diff suppressed because it is too large Load Diff

Binary file not shown.

@ -0,0 +1,122 @@
/********************************************************************************
** Form generated from reading UI file 'Prediction.ui'
**
** Created by: Qt User Interface Compiler version 6.2.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_PREDICTION_H
#define UI_PREDICTION_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_PredictionClass
{
public:
QWidget *centralWidget;
QWidget *verticalLayoutWidget;
QVBoxLayout *verticalLayout;
QLabel *display;
QLabel *Pre_tag;
QPushButton *north;
QPushButton *south;
QPushButton *east;
QPushButton *west;
QLineEdit *Tree_Type;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *PredictionClass)
{
if (PredictionClass->objectName().isEmpty())
PredictionClass->setObjectName(QString::fromUtf8("PredictionClass"));
PredictionClass->resize(1130, 644);
centralWidget = new QWidget(PredictionClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
verticalLayoutWidget = new QWidget(centralWidget);
verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget"));
verticalLayoutWidget->setGeometry(QRect(120, 50, 642, 509));
verticalLayoutWidget->setMinimumSize(QSize(640, 480));
verticalLayout = new QVBoxLayout(verticalLayoutWidget);
verticalLayout->setSpacing(6);
verticalLayout->setContentsMargins(11, 11, 11, 11);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
display = new QLabel(verticalLayoutWidget);
display->setObjectName(QString::fromUtf8("display"));
display->setEnabled(true);
display->setMinimumSize(QSize(640, 480));
display->setMaximumSize(QSize(640, 480));
verticalLayout->addWidget(display);
Pre_tag = new QLabel(centralWidget);
Pre_tag->setObjectName(QString::fromUtf8("Pre_tag"));
Pre_tag->setGeometry(QRect(130, 30, 81, 31));
north = new QPushButton(centralWidget);
north->setObjectName(QString::fromUtf8("north"));
north->setGeometry(QRect(830, 60, 93, 29));
south = new QPushButton(centralWidget);
south->setObjectName(QString::fromUtf8("south"));
south->setGeometry(QRect(830, 110, 93, 29));
east = new QPushButton(centralWidget);
east->setObjectName(QString::fromUtf8("east"));
east->setGeometry(QRect(830, 160, 93, 29));
west = new QPushButton(centralWidget);
west->setObjectName(QString::fromUtf8("west"));
west->setGeometry(QRect(830, 210, 93, 29));
Tree_Type = new QLineEdit(centralWidget);
Tree_Type->setObjectName(QString::fromUtf8("Tree_Type"));
Tree_Type->setGeometry(QRect(830, 260, 91, 31));
PredictionClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(PredictionClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 1130, 26));
PredictionClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(PredictionClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
PredictionClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(PredictionClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
PredictionClass->setStatusBar(statusBar);
retranslateUi(PredictionClass);
QMetaObject::connectSlotsByName(PredictionClass);
} // setupUi
void retranslateUi(QMainWindow *PredictionClass)
{
PredictionClass->setWindowTitle(QCoreApplication::translate("PredictionClass", "Prediction", nullptr));
display->setText(QString());
Pre_tag->setText(QCoreApplication::translate("PredictionClass", "\347\201\253\345\212\277\347\212\266\345\206\265", nullptr));
north->setText(QCoreApplication::translate("PredictionClass", "\345\214\227\351\243\216", nullptr));
south->setText(QCoreApplication::translate("PredictionClass", "\345\215\227\351\243\216", nullptr));
east->setText(QCoreApplication::translate("PredictionClass", "\344\270\234\351\243\216", nullptr));
west->setText(QCoreApplication::translate("PredictionClass", "\350\245\277\351\243\216", nullptr));
Tree_Type->setPlaceholderText(QCoreApplication::translate("PredictionClass", "1\357\274\232\351\222\210\345\217\266\346\236\227\357\274\2332\357\274\232\350\220\275\345\217\266\346\236\227\357\274\2333\357\274\232\347\201\214\346\234\250\346\236\227", nullptr));
} // retranslateUi
};
namespace Ui {
class PredictionClass: public Ui_PredictionClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_PREDICTION_H

@ -0,0 +1,199 @@
/********************************************************************************
** Form generated from reading UI file 'Setting.ui'
**
** Created by: Qt User Interface Compiler version 6.2.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_SETTING_H
#define UI_SETTING_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_SettingClass
{
public:
QWidget *centralWidget;
QWidget *gridLayoutWidget;
QGridLayout *gridLayout;
QLabel *Start_Timer;
QLineEdit *seconds;
QLineEdit *hours;
QLineEdit *longitude;
QLineEdit *minutes;
QLineEdit *latitude;
QLabel *Speed_Lable;
QLabel *label;
QLineEdit *x;
QLineEdit *y;
QLineEdit *z;
QPushButton *finished;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *SettingClass)
{
if (SettingClass->objectName().isEmpty())
SettingClass->setObjectName(QString::fromUtf8("SettingClass"));
SettingClass->resize(871, 571);
centralWidget = new QWidget(SettingClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
gridLayoutWidget = new QWidget(centralWidget);
gridLayoutWidget->setObjectName(QString::fromUtf8("gridLayoutWidget"));
gridLayoutWidget->setGeometry(QRect(200, 100, 451, 241));
gridLayout = new QGridLayout(gridLayoutWidget);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(11, 11, 11, 11);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
gridLayout->setContentsMargins(0, 0, 0, 0);
Start_Timer = new QLabel(gridLayoutWidget);
Start_Timer->setObjectName(QString::fromUtf8("Start_Timer"));
Start_Timer->setStyleSheet(QString::fromUtf8("background: none;\n"
"background-color: blue;\n"
"color: red"));
gridLayout->addWidget(Start_Timer, 2, 0, 1, 1);
seconds = new QLineEdit(gridLayoutWidget);
seconds->setObjectName(QString::fromUtf8("seconds"));
seconds->setMaximumSize(QSize(150, 16777215));
seconds->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(seconds, 2, 3, 1, 1);
hours = new QLineEdit(gridLayoutWidget);
hours->setObjectName(QString::fromUtf8("hours"));
hours->setMaximumSize(QSize(150, 16777215));
hours->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(hours, 2, 1, 1, 1);
longitude = new QLineEdit(gridLayoutWidget);
longitude->setObjectName(QString::fromUtf8("longitude"));
longitude->setMaximumSize(QSize(150, 16777215));
longitude->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(longitude, 0, 1, 1, 1);
minutes = new QLineEdit(gridLayoutWidget);
minutes->setObjectName(QString::fromUtf8("minutes"));
minutes->setMaximumSize(QSize(150, 16777215));
gridLayout->addWidget(minutes, 2, 2, 1, 1);
latitude = new QLineEdit(gridLayoutWidget);
latitude->setObjectName(QString::fromUtf8("latitude"));
latitude->setMaximumSize(QSize(150, 16777215));
latitude->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(latitude, 0, 2, 1, 1);
Speed_Lable = new QLabel(gridLayoutWidget);
Speed_Lable->setObjectName(QString::fromUtf8("Speed_Lable"));
Speed_Lable->setMaximumSize(QSize(80, 16777215));
Speed_Lable->setStyleSheet(QString::fromUtf8("background: none;\n"
"background-color: blue;\n"
"color: red"));
gridLayout->addWidget(Speed_Lable, 0, 0, 1, 1);
label = new QLabel(gridLayoutWidget);
label->setObjectName(QString::fromUtf8("label"));
label->setMaximumSize(QSize(16777215, 20));
label->setStyleSheet(QString::fromUtf8("background: none;\n"
"background-color: blue;\n"
"color: red"));
gridLayout->addWidget(label, 1, 0, 1, 1);
x = new QLineEdit(gridLayoutWidget);
x->setObjectName(QString::fromUtf8("x"));
x->setMaximumSize(QSize(150, 16777215));
x->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(x, 1, 1, 1, 1);
y = new QLineEdit(gridLayoutWidget);
y->setObjectName(QString::fromUtf8("y"));
y->setMaximumSize(QSize(150, 16777215));
y->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(y, 1, 2, 1, 1);
z = new QLineEdit(gridLayoutWidget);
z->setObjectName(QString::fromUtf8("z"));
z->setMaximumSize(QSize(150, 16777215));
z->setStyleSheet(QString::fromUtf8("background: none;\n"
""));
gridLayout->addWidget(z, 1, 3, 1, 1);
finished = new QPushButton(centralWidget);
finished->setObjectName(QString::fromUtf8("finished"));
finished->setGeometry(QRect(360, 370, 93, 29));
finished->setStyleSheet(QString::fromUtf8("background: none;\n"
"background-color: blue;\n"
"color: red"));
SettingClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(SettingClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 871, 26));
SettingClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(SettingClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
SettingClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(SettingClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
SettingClass->setStatusBar(statusBar);
retranslateUi(SettingClass);
QMetaObject::connectSlotsByName(SettingClass);
} // setupUi
void retranslateUi(QMainWindow *SettingClass)
{
SettingClass->setWindowTitle(QCoreApplication::translate("SettingClass", "Setting", nullptr));
Start_Timer->setText(QCoreApplication::translate("SettingClass", "\345\207\272\345\217\221\346\227\266\351\227\264\357\274\232", nullptr));
seconds->setPlaceholderText(QCoreApplication::translate("SettingClass", "\347\247\222", nullptr));
hours->setPlaceholderText(QCoreApplication::translate("SettingClass", "\346\227\266", nullptr));
longitude->setPlaceholderText(QCoreApplication::translate("SettingClass", "\347\273\217\345\272\246", nullptr));
minutes->setPlaceholderText(QCoreApplication::translate("SettingClass", "\345\210\206", nullptr));
latitude->setPlaceholderText(QCoreApplication::translate("SettingClass", "\347\272\254\345\272\246", nullptr));
Speed_Lable->setText(QCoreApplication::translate("SettingClass", "\347\233\256\347\232\204\345\234\260", nullptr));
label->setText(QCoreApplication::translate("SettingClass", "x,y,z", nullptr));
x->setPlaceholderText(QCoreApplication::translate("SettingClass", "0", nullptr));
y->setPlaceholderText(QCoreApplication::translate("SettingClass", "0", nullptr));
z->setPlaceholderText(QCoreApplication::translate("SettingClass", "0", nullptr));
finished->setText(QCoreApplication::translate("SettingClass", "\345\256\214\346\210\220", nullptr));
} // retranslateUi
};
namespace Ui {
class SettingClass: public Ui_SettingClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_SETTING_H

@ -0,0 +1,123 @@
/********************************************************************************
** Form generated from reading UI file 'UAV_UI_new.ui'
**
** Created by: Qt User Interface Compiler version 6.2.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_UAV_UI_NEW_H
#define UI_UAV_UI_NEW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_UAV_UI_newClass
{
public:
QWidget *centralWidget;
QWidget *verticalLayoutWidget;
QVBoxLayout *verticalLayout;
QLabel *display;
QPushButton *stop;
QPushButton *connection;
QLabel *play_tag;
QPushButton *Settings;
QPushButton *action;
QPushButton *Prediction;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *UAV_UI_newClass)
{
if (UAV_UI_newClass->objectName().isEmpty())
UAV_UI_newClass->setObjectName(QString::fromUtf8("UAV_UI_newClass"));
UAV_UI_newClass->resize(1440, 1000);
UAV_UI_newClass->setMinimumSize(QSize(0, 0));
UAV_UI_newClass->setMaximumSize(QSize(1440, 1200));
centralWidget = new QWidget(UAV_UI_newClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
verticalLayoutWidget = new QWidget(centralWidget);
verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget"));
verticalLayoutWidget->setGeometry(QRect(90, 60, 642, 509));
verticalLayoutWidget->setMinimumSize(QSize(640, 480));
verticalLayout = new QVBoxLayout(verticalLayoutWidget);
verticalLayout->setSpacing(6);
verticalLayout->setContentsMargins(11, 11, 11, 11);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
display = new QLabel(verticalLayoutWidget);
display->setObjectName(QString::fromUtf8("display"));
display->setEnabled(true);
display->setMinimumSize(QSize(640, 480));
display->setMaximumSize(QSize(640, 480));
verticalLayout->addWidget(display);
stop = new QPushButton(centralWidget);
stop->setObjectName(QString::fromUtf8("stop"));
stop->setGeometry(QRect(820, 140, 93, 29));
connection = new QPushButton(centralWidget);
connection->setObjectName(QString::fromUtf8("connection"));
connection->setGeometry(QRect(820, 70, 93, 29));
play_tag = new QLabel(centralWidget);
play_tag->setObjectName(QString::fromUtf8("play_tag"));
play_tag->setGeometry(QRect(100, 40, 81, 31));
Settings = new QPushButton(centralWidget);
Settings->setObjectName(QString::fromUtf8("Settings"));
Settings->setGeometry(QRect(1350, 0, 93, 29));
action = new QPushButton(centralWidget);
action->setObjectName(QString::fromUtf8("action"));
action->setGeometry(QRect(820, 200, 93, 29));
Prediction = new QPushButton(centralWidget);
Prediction->setObjectName(QString::fromUtf8("Prediction"));
Prediction->setGeometry(QRect(820, 260, 93, 29));
UAV_UI_newClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(UAV_UI_newClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 1440, 26));
UAV_UI_newClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(UAV_UI_newClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
UAV_UI_newClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(UAV_UI_newClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
UAV_UI_newClass->setStatusBar(statusBar);
retranslateUi(UAV_UI_newClass);
QMetaObject::connectSlotsByName(UAV_UI_newClass);
} // setupUi
void retranslateUi(QMainWindow *UAV_UI_newClass)
{
UAV_UI_newClass->setWindowTitle(QCoreApplication::translate("UAV_UI_newClass", "UAV_UI_new", nullptr));
display->setText(QString());
stop->setText(QCoreApplication::translate("UAV_UI_newClass", "\345\205\263\351\227\255\345\233\276\345\203\217", nullptr));
connection->setText(QCoreApplication::translate("UAV_UI_newClass", "\350\277\236\346\216\245\345\233\276\345\203\217", nullptr));
play_tag->setText(QCoreApplication::translate("UAV_UI_newClass", "\345\256\236\346\227\266\345\233\276\345\203\217", nullptr));
Settings->setText(QCoreApplication::translate("UAV_UI_newClass", "\350\256\276\347\275\256", nullptr));
action->setText(QCoreApplication::translate("UAV_UI_newClass", "\345\207\272\350\255\246", nullptr));
Prediction->setText(QCoreApplication::translate("UAV_UI_newClass", "\351\242\204\346\265\213", nullptr));
} // retranslateUi
};
namespace Ui {
class UAV_UI_newClass: public Ui_UAV_UI_newClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_UAV_UI_NEW_H

@ -0,0 +1,89 @@
/********************************************************************************
** Form generated from reading UI file 'tips.ui'
**
** Created by: Qt User Interface Compiler version 6.2.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TIPS_H
#define UI_TIPS_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_tipsClass
{
public:
QWidget *centralWidget;
QLabel *Pre_tag;
QLabel *display;
QPushButton *action;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *tipsClass)
{
if (tipsClass->objectName().isEmpty())
tipsClass->setObjectName(QString::fromUtf8("tipsClass"));
tipsClass->resize(1130, 644);
tipsClass->setMinimumSize(QSize(1130, 644));
tipsClass->setMaximumSize(QSize(1130, 644));
centralWidget = new QWidget(tipsClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
Pre_tag = new QLabel(centralWidget);
Pre_tag->setObjectName(QString::fromUtf8("Pre_tag"));
Pre_tag->setGeometry(QRect(19, 6, 81, 31));
display = new QLabel(centralWidget);
display->setObjectName(QString::fromUtf8("display"));
display->setEnabled(true);
display->setGeometry(QRect(20, 30, 640, 480));
display->setMinimumSize(QSize(640, 480));
display->setMaximumSize(QSize(640, 480));
action = new QPushButton(centralWidget);
action->setObjectName(QString::fromUtf8("action"));
action->setGeometry(QRect(830, 40, 93, 29));
tipsClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(tipsClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 1130, 26));
tipsClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(tipsClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
tipsClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(tipsClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
tipsClass->setStatusBar(statusBar);
retranslateUi(tipsClass);
QMetaObject::connectSlotsByName(tipsClass);
} // setupUi
void retranslateUi(QMainWindow *tipsClass)
{
tipsClass->setWindowTitle(QCoreApplication::translate("tipsClass", "tips", nullptr));
Pre_tag->setText(QCoreApplication::translate("tipsClass", "\347\201\253\345\212\277\347\212\266\345\206\265", nullptr));
display->setText(QString());
action->setText(QCoreApplication::translate("tipsClass", "\345\207\272\350\255\246", nullptr));
} // retranslateUi
};
namespace Ui {
class tipsClass: public Ui_tipsClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TIPS_H

@ -0,0 +1,47 @@
class SocketClient {
private:
struct sockaddr_in server_addr;
public:
int sock;
SocketClient(const char* ip_address, int port) {
// 创建 socket
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
throw runtime_error("Failed to create socket!");
}
// 初始化服务器地址
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = inet_addr(ip_address);
// 连接服务器
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
close(sock);
throw runtime_error("Failed to connect to server!");
}
}
~SocketClient() {
close(sock);
}
string receive(int buffer_size = 1024) {
char buffer[buffer_size];
int bytes_received = recv(sock, buffer, sizeof(buffer), 0);
if (bytes_received == -1) {
ROS_INFO("Failed to receive data from server!");
} else {
buffer[bytes_received] = '\0';
return string(buffer);
}
}
void send(const string& message) {
if (::send(sock, message.c_str(), message.length(), 0) == -1) {
throw runtime_error("Failed to send data to server!");
}
}
};

@ -18,18 +18,18 @@
#include <unicode/ustream.h>
#include "convert.h"
#include <time.h>
#include "SocketClient"
#include "cJSON.h"
#define NODE_NAME "terminal_control"
#define NODE_NAME "terminal_control"
#define latitude_home 28.194
#define longitude_home 112.982
using namespace std;
prometheus_msgs::ControlCommand Command_to_offboard;
prometheus_msgs::ControlCommand Command_to_Move;
prometheus_msgs::ControlCommand Command_to_Return;
prometheus_msgs::ControlCommand Command_to_Return_Land;
prometheus_msgs::ControlCommand Command_to_Hold;
prometheus_msgs::ControlCommand Command_to_Takeoff;
prometheus_msgs::ControlCommand Command_to_offboard; //offboard模式
prometheus_msgs::ControlCommand Command_to_Move; //巡逻
prometheus_msgs::ControlCommand Command_to_Return; //返航
prometheus_msgs::ControlCommand Command_to_Return_Land; //返航降落
prometheus_msgs::ControlCommand Command_to_Hold; //遇火悬停
prometheus_msgs::ControlCommand Command_to_Takeoff; //起飞
prometheus_msgs::DroneState _DroneState;
float latitude;
float longitude;
@ -41,6 +41,7 @@ int hold_flag = 0;
int goal_x;
int goal_y;
int goal_z;
//消息队列+1
void Command_cb(const prometheus_msgs::ControlCommand::ConstPtr& msg){
Command_to_offboard.Command_ID = msg->Command_ID+1;
Command_to_Move.Command_ID = msg->Command_ID+1;
@ -50,6 +51,7 @@ void Command_cb(const prometheus_msgs::ControlCommand::ConstPtr& msg){
Command_to_Takeoff.Command_ID = msg->Command_ID+1;
ROS_INFO("%d",Command_to_offboard.Command_ID);
}
//检查距离目的地距离,如果<2米则可准备返航
void Arrival_check(const prometheus_msgs::DroneState::ConstPtr& msg){
//ROS_INFO("??? go this way?");
_DroneState = *msg;
@ -62,56 +64,9 @@ void Arrival_check(const prometheus_msgs::DroneState::ConstPtr& msg){
//ROS_INFO("Arrival_flag:%d",arrival_flag);
}
}
class SocketClient {
private:
struct sockaddr_in server_addr;
public:
int sock;
SocketClient(const char* ip_address, int port) {
// 创建 socket
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
throw runtime_error("Failed to create socket!");
}
// 初始化服务器地址
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = inet_addr(ip_address);
// 连接服务器
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
close(sock);
throw runtime_error("Failed to connect to server!");
}
}
~SocketClient() {
close(sock);
}
string receive(int buffer_size = 1024) {
char buffer[buffer_size];
int bytes_received = recv(sock, buffer, sizeof(buffer), 0);
if (bytes_received == -1) {
ROS_INFO("Failed to receive data from server!");
} else {
buffer[bytes_received] = '\0';
return string(buffer);
}
}
void send(const string& message) {
if (::send(sock, message.c_str(), message.length(), 0) == -1) {
throw runtime_error("Failed to send data to server!");
}
}
};
//套接字连接
SocketClient client("192.168.8.100", 9090);
//获取服务器转发参数 latitudelongitude经纬度 xyz坐标hoursminutesseconds起飞时间
void *TCP_recv(void *arg){
while(true){
std::vector<char> buffer(1024);
@ -141,9 +96,9 @@ while(true){
hours = cJSON_GetObjectItem(root, "hours")->valueint;
minutes = cJSON_GetObjectItem(root, "minutes")->valueint;
seconds = cJSON_GetObjectItem(root, "seconds")->valueint;
//x = cJSON_GetObjectItem(root,"x")->valueint;
//y = cJSON_GetObjectItem(root,"y")->valueint;
//z = cJSON_GetObjectItem(root,"z")->valueint;
x = cJSON_GetObjectItem(root,"x")->valueint;
y = cJSON_GetObjectItem(root,"y")->valueint;
z = cJSON_GetObjectItem(root,"z")->valueint;
if(latitude != 0 && longitude != 0){
//ROS_INFO("%f,%f,%f,%d,%d,%d",latitude,longitude,hours,minutes,seconds);
geodetic2enu(latitude,longitude,latitude_home, longitude_home,&goal_x,&goal_y);
@ -194,7 +149,7 @@ Command_to_Takeoff.Mode = prometheus_msgs::Contro
Command_to_Takeoff.Reference_State.Move_frame = prometheus_msgs::PositionReference::ENU_FRAME;
Command_to_Takeoff.Reference_State.position_ref[0] = 0;//goal_x;
Command_to_Takeoff.Reference_State.position_ref[1] = 0;//goal_y;
Command_to_Takeoff.Reference_State.position_ref[2] = 3;
Command_to_Takeoff.Reference_State.position_ref[2] = z;
Command_to_Takeoff.Reference_State.velocity_ref[0] = 0;
Command_to_Takeoff.Reference_State.velocity_ref[1] = 0;
Command_to_Takeoff.Reference_State.velocity_ref[2] = 0;
@ -207,9 +162,9 @@ Command_to_Move.Mode = prometheus_msgs::ControlCo
Command_to_Move.source = NODE_NAME;
Command_to_Move.Reference_State.Move_mode = prometheus_msgs::PositionReference::XYZ_POS;
Command_to_Move.Reference_State.Move_frame = prometheus_msgs::PositionReference::ENU_FRAME;
Command_to_Move.Reference_State.position_ref[0] = 10;//goal_x;
Command_to_Move.Reference_State.position_ref[1] = 0;//goal_y;
Command_to_Move.Reference_State.position_ref[2] = 3;
Command_to_Move.Reference_State.position_ref[0] = x;//goal_x;
Command_to_Move.Reference_State.position_ref[1] = y;//goal_y;
Command_to_Move.Reference_State.position_ref[2] = z;
Command_to_Move.Reference_State.velocity_ref[0] = 0;
Command_to_Move.Reference_State.velocity_ref[1] = 0;
Command_to_Move.Reference_State.velocity_ref[2] = 0;
@ -269,12 +224,14 @@ Command_to_Hold.Mode = prometheus_msgs::ControlCo
ros::spinOnce();
//int buffer_size = 1024;
pthread_t tcp_rec;
//tcp线程
int tcp_ret = pthread_create(&tcp_rec, NULL, TCP_recv, NULL);
// 创建一个新的 prometheus_msgs::ControlCommand 消息
//发布消息
time_t now = time(NULL);
struct tm *local = localtime(&now);
ROS_INFO("%d,%d",local->tm_hour,local->tm_min);
//如果到达预定时间时间
if(local->tm_hour == hours && local->tm_min == minutes && local->tm_sec == seconds){
control_offboard.publish(Command_to_offboard);
ROS_INFO("received");
@ -299,9 +256,11 @@ Command_to_Hold.Mode = prometheus_msgs::ControlCo
}
}
//ROS_INFO("check_arrival:%d",arrival_flag);
if(arrival_flag == 1){
//如果到了目的地
if(arrival_flag == 1){
ROS_INFO("start return");
sleep(5);
//先返航到00z坐标
control_offboard.publish(Command_to_Return);
ROS_INFO("arrival");
loop_rate.sleep();
@ -325,6 +284,7 @@ Command_to_Hold.Mode = prometheus_msgs::ControlCo
else
break;
}
//再降落
control_offboard.publish(Command_to_Return_Land);
arrival_flag = 0;
}

Loading…
Cancel
Save