diff --git a/.gitignore b/.gitignore index 4ccd6fa..16cb3ed 100644 --- a/.gitignore +++ b/.gitignore @@ -662,3 +662,5 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +**/**/x64 +**/**/.vs \ No newline at end of file diff --git a/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj b/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj new file mode 100644 index 0000000..2695a43 --- /dev/null +++ b/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj @@ -0,0 +1,123 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A} + QtVS_v304 + 10.0 + 10.0 + $(MSBuildProjectDirectory)\QtMsBuild + + + + Application + v143 + true + Unicode + + + Application + v143 + false + true + Unicode + + + + + + + qgis_qt5 + core;gui;widgets + debug + + + tools_qt5 + core;xml;gui;widgets + release + true + + + + + + + + + + + + + + + + + + + D:\OSGeo4W\apps\qgis-dev\include;D:\OSGeo4W\include;$(IncludePath) + D:\OSGeo4W\lib;D:\OSGeo4W\apps\qgis-dev\lib;$(ReferencePath) + D:\OSGeo4W\lib;D:\OSGeo4W\apps\qgis-dev\lib;$(LibraryPath) + + + + qgis_core.lib;qgis_app.lib;qgis_gui.lib;%(AdditionalDependencies) + + + _USE_MATH_DEFINES;_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING;%(PreprocessorDefinitions) + stdcpp17 + + + + + true + Level3 + true + true + + + Windows + true + + + + + true + Level3 + true + true + true + true + + + Windows + false + true + true + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj.filters b/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj.filters new file mode 100644 index 0000000..dc0477e --- /dev/null +++ b/Manual-Label-Tool-Widget/Manual-Label-Tool-Widget.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + + + {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} + ts + + + + + Resource Files + + + Header Files + + + Source Files + + + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/Manual-Label-Tool-Widget/ManualLabelToolWidget.cpp b/Manual-Label-Tool-Widget/ManualLabelToolWidget.cpp new file mode 100644 index 0000000..c41aa68 --- /dev/null +++ b/Manual-Label-Tool-Widget/ManualLabelToolWidget.cpp @@ -0,0 +1,276 @@ +#include "ManualLabelToolWidget.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//QgsUnitTypes + +// ¶¨Òå·ÃÎʲÎÊý +#define RASTERFILEFILTER u8"ËùÓÐÎļþ (*.*);;TIF (*.tif);;TIFF (*.tiff);;bin (*.bin);;dat (*.dat);;" + + + +ManualLabelToolWidget::ManualLabelToolWidget(QWidget *parent) + : QMainWindow(parent) +{ + this->init_UI(); + +} + +ManualLabelToolWidget::~ManualLabelToolWidget() +{ +} + +void ManualLabelToolWidget::init_UI() +{ + this->setWindowTitle(tr(u8"AI±ê×¢Èí¼þ")); + // ³õʼ´óС + { + this->resize(1920,1080); + } + + //µØÍ¼¿ØÖÆ + { + // 1. inti map canvas + this->map_canvas = new QgsMapCanvas(); + this->setCentralWidget((this->map_canvas)); + + // 2. map tool pan + this->map_tool_pan = new QgsMapToolPan(this->map_canvas); + this->map_canvas->setMapTool(this->map_tool_pan); + + // 3. map layer manager + this->map_layerTreeView = new QgsLayerTreeView(this); + // 4. create map model + this->map_layerModel = new QgsLayerTreeModel(QgsProject::instance()->layerTreeRoot(), this); + this->map_layerModel->setFlag(QgsLayerTreeModel::AllowNodeRename); // ÔÊÐíÖØÃüÃû + this->map_layerModel->setFlag(QgsLayerTreeModel::AllowNodeReorder); // ÔÊÐíµ÷Õû˳Ðò + this->map_layerModel->setFlag(QgsLayerTreeModel::AllowNodeChangeVisibility); // ÔÊÐí¸Ä±ä¿É¼ûÐÔ + this->map_layerModel->setFlag(QgsLayerTreeModel::ShowLegendAsTree); // ÒÔÊ÷״ͼÏÔʾͼÀý + this->map_layerModel->setAutoCollapseLegendNodes(10); // ×Ô¶¯ÕÛµþ¹ý¶àͼÀýÏî + + this->map_layerTreeView->setModel(this->map_layerModel); + // create bridge between mapcontrol and layer + this->map_layer_Bridge = new QgsLayerTreeMapCanvasBridge(QgsProject::instance()->layerTreeRoot(), this->map_canvas, this); + + + // layer ²¼¾Ö + // 1. ´´½¨Ò»¸öQDockWidget£¨Í£¿¿´°¿Ú£©À´³ÐÔØÍ¼²ãÊ÷ÊÓͼ + this->layerTreeDock = new QDockWidget(tr(u8"ͼ²ã¹ÜÀíÆ÷"), this); + this->layerTreeDock->setWidget(this->map_layerTreeView); + + // 2. ½«ÒÑÓеÄͼ²ãÊ÷ÊÓͼ(m_layerTreeView)ÉèÖÃΪÕâ¸öÍ£¿¿´°¿ÚµÄÖÐÐIJ¿¼þ + layerTreeDock->setWidget(this->map_layerTreeView); + + // 3. (¿ÉÑ¡µ«ÍƼö)ÉèÖÃÍ£¿¿´°¿ÚÔÊÐíÍ£¿¿µÄÇøÓò + layerTreeDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + + // 5. ½«Í£¿¿´°¿ÚÌí¼Óµ½Ö÷´°¿ÚµÄ×ó²àÇøÓò + this->addDockWidget(Qt::LeftDockWidgetArea, this->layerTreeDock); + + + } + + // ״̬¹¤¾ßÀ¸ + { + appStatusBar = this->statusBar(); // »ñÈ¡»ò´´½¨×´Ì¬À¸ + + scaleLabel = new QLabel(tr(u8"±ÈÀý³ß£º")); + CoordinaryTextLabel = new QLabel(tr(u8"×ø±êϵ£º")); + PointXYLabel = new QLabel(tr(u8"×ø±ê£º")); + UnitLabel = new QLabel(tr(u8"µ¥Î»£º")); + appStatusBar->addPermanentWidget(PointXYLabel); // + appStatusBar->addPermanentWidget(scaleLabel); // + appStatusBar->addPermanentWidget(UnitLabel); // + appStatusBar->addPermanentWidget(CoordinaryTextLabel); // + + // Á¬½Ó±ÈÀý³ß±ä»¯ÐźŠ+ connect(map_canvas, SIGNAL(scaleChanged(double)) , this, SLOT(updateScaleLabel(double))); + connect(map_canvas, SIGNAL(xyCoordinates(const QgsPointXY&)), this, SLOT(updateCoordinateLabel(const QgsPointXY&))); + + connect(map_canvas, SIGNAL(extentsChanged()), this, SLOT(onMapExtentsChanged())); + + + } + + // ²Ëµ¥À¸ + { + menubar = this->menuBar(); + + // Ôڲ˵¥À¸ÉÏÌí¼Ó"Îļþ"ºÍ"±à¼­"²Ëµ¥ + fileMenu = menubar->addMenu(tr(u8"Îļþ")); + + + // Ïò"Îļþ"²Ëµ¥ÖÐÌí¼Ó²Ëµ¥ÏQAction£© + newAction = fileMenu->addAction(tr(u8"н¨")); + fileMenu->addSeparator(); // Ìí¼Ó·Ö¸îÏß[1,5](@ref) + openMenu = fileMenu->addMenu(tr(u8"´ò¿ª")); + + openRasterFolderAction = openMenu->addAction(tr(u8"´ò¿ªÓ°ÏñÎļþ¼Ð")); + openRasterAction = openMenu->addAction(tr(u8"´ò¿ªÓ°Ïñ")); + openSLCRasterAction = openMenu->addAction(tr(u8"SLCÓ°Ïñ")); + editMenu = menubar->addMenu(tr(u8"±à¼­")); + + // ʼþ°ó¶¨ + QObject::connect(this->openRasterAction, SIGNAL(triggered()), this, SLOT(openRasterLayerTriggered())); + + } + + // AI±ê×¢¹¤¾ßÀ¸ + { + AiLabelToolBar = new QToolBar(tr(u8"AI±ê×¢¹¤¾ßÀ¸"), this); + this->addToolBar(Qt::LeftToolBarArea, AiLabelToolBar); + } + +} + +void ManualLabelToolWidget::open() +{ +} + + +void ManualLabelToolWidget::openRasterLayerTriggered() +{ + if (lastFileDialogPath.isEmpty()) { + lastFileDialogPath = "."; + } + // ´ò¿ªÓ°Ïñ + // 2. Ñ¡Ôñ¶à¸öÎļþ + QString rasterPath = QFileDialog::getOpenFileName( + this, + tr(u8"ÇëÑ¡ÔñÓ°ÏñÎļþ"), + lastFileDialogPath, + tr(RASTERFILEFILTER) + ); + + lastFileDialogPath = rasterPath; + // ¶ÁÈ¡Êý¾Ý + this->openRaster(rasterPath); +} + +void ManualLabelToolWidget::openRaster(QString& filePath) +{ + QString filename = QFileInfo(filePath).fileName(); + + QgsRasterLayer* rasterLayer = new QgsRasterLayer(filePath, filename); + if (!rasterLayer->isValid()) { + qDebug() << "Failed to load raster layer!"; + // ´íÎó´¦Àí + return; + } + + QgsProject::instance()->addMapLayer(rasterLayer); + +} + +void ManualLabelToolWidget::updateCoordinateLabel(const QgsPointXY& point) +{ + QString coordText = QString(tr(u8"×ø±ê£ºX:%1 Y:%2")).arg(QString::number(point.x(), 'f', 2)).arg(QString::number(point.y(), 'f', 2)); + PointXYLabel->setText(coordText); +} + +void ManualLabelToolWidget::onMapExtentsChanged() +{ + QgsRectangle currentExtent = map_canvas->extent(); + + //// ÏÖÔÚÄã¿ÉÒÔʹÓÃÕâ¸ö·¶Î§ÐÅÏ¢ÁË£¬ÀýÈ磺 + //// 1. ´òÓ¡·¶Î§×ø±ê + //qDebug() << "з¶Î§ - Xmin:" << currentExtent.xMinimum() + // << "Ymin:" << currentExtent.yMinimum() + // << "Xmax:" << currentExtent.xMaximum() + // << "Ymax:" << currentExtent.yMaximum(); +} + +void ManualLabelToolWidget::onLayersChanged(QgsMapLayer* layer) +{ + + // WGS×ø±êϵ + QgsCoordinateReferenceSystem currentCrs = map_canvas->mapSettings().destinationCrs(); + // »ñÈ¡×ø±êϵµÄÃèÊöÐÅÏ¢ºÍÈÏÖ¤±êʶ·û£¬ÀýÈç "WGS 84 / EPSG:4326" + QString description = currentCrs.description(); + QString authid = currentCrs.authid(); + + + // »ñÈ¡µ±Ç°ÏîÄ¿ÖÐËùÓÐͼ²ã + QList layers = QgsProject::instance()->mapLayers().values(); + int layerCount = layers.size(); + + // Åжϵ±Ç°ÊÇ·ñ½öÓÐÒ»²ã + if (layerCount == 0&&description == "") { + QgsMapLayer* theOnlyLayer = layers.first(); + + // ¼ì²éͼ²ãÊÇ·ñÓÐЧÇÒÓµÓж¨ÒåµÄ×ø±êϵ + if (theOnlyLayer && theOnlyLayer->isValid() && theOnlyLayer->crs().isValid()) { + // ½«µØÍ¼»­²¼µÄÄ¿±ê×ø±êϵÉèÖÃΪÓëͼ²ãÒ»Ö + map_canvas->mapSettings().setDestinationCrs(theOnlyLayer->crs()); + // ¿ÉÑ¡£º½«µØÍ¼·¶Î§Ëõ·ÅÖÁ¸Ãͼ²ãµÄÈ«·¶Î§£¬Ìṩ¸üºÃµÄ³õʼÊÓͼ + map_canvas->setExtent(theOnlyLayer->extent()); + // ˢл­²¼£¬Ê¹¸ü¸ÄÉúЧ + map_canvas->refresh(); + qDebug() << "ͼ²ãÊýÁ¿Îª1£¬ÒÑͬ²½»­²¼×ø±êϵÖÁ£º" << theOnlyLayer->crs().description(); + } + } + +} + +void ManualLabelToolWidget::updateScaleLabel(double scale) +{ + // ½«±ÈÀý³ßÊýÖµ¸ñʽ»¯ÎªÒ×¶ÁµÄ×Ö·û´®£¬ÀýÈç 1:10000 + QString scaleText = QString(tr(u8"±ÈÀý³ß£º1:%1")).arg(QString::number(scale, 'f', 0)); + scaleLabel->setText(scaleText); + + // ͬʱ¸üе¥Î»±êÇ© + Qgis::DistanceUnit unit = map_canvas->mapUnits(); + QString unitString; + if (unit == Qgis::DistanceUnit::Meters) { + unitString = tr(u8"Ã×"); + } + else if (unit == Qgis::DistanceUnit::Degrees) { + unitString = tr(u8"¶È"); + } + else if (unit == Qgis::DistanceUnit::Feet) { + unitString = tr(u8"Ó¢³ß"); + } + else { + unitString = tr(u8"δ֪"); + } + UnitLabel->setText(QString(tr(u8"µ¥Î»£º%1")).arg(unitString)); + + // WGS×ø±êϵ + QgsCoordinateReferenceSystem currentCrs = map_canvas->mapSettings().destinationCrs(); + // »ñÈ¡×ø±êϵµÄÃèÊöÐÅÏ¢ºÍÈÏÖ¤±êʶ·û£¬ÀýÈç "WGS 84 / EPSG:4326" + QString description = currentCrs.description(); + QString authid = currentCrs.authid(); + + if (description == "") { + // ¼ÙÉè ui->label_crs ÊÇÓÃÓÚÏÔÊ¾×ø±êϵÐÅÏ¢µÄQLabel + CoordinaryTextLabel->setText(QString(tr(u8"×ø±êϵ£ºÎ´Öª"))); + } + else { + // ¼ÙÉè ui->label_crs ÊÇÓÃÓÚÏÔÊ¾×ø±êϵÐÅÏ¢µÄQLabel + CoordinaryTextLabel->setText(QString(tr(u8"×ø±êϵ£º%1 (%2)")).arg(description).arg(authid)); + } + + +} diff --git a/Manual-Label-Tool-Widget/ManualLabelToolWidget.h b/Manual-Label-Tool-Widget/ManualLabelToolWidget.h new file mode 100644 index 0000000..4f961ca --- /dev/null +++ b/Manual-Label-Tool-Widget/ManualLabelToolWidget.h @@ -0,0 +1,86 @@ +#pragma once + +#include +#include +#include + +class QgsMapCanvas; +class QgsMapToolPan; +class QgsLayerTreeModel; +class QgsLayerTreeView; +class QgsLayerTreeMapCanvasBridge; +class QDockWidget; +class QLabel; +class QStatusBar; +class QMenuBar; +class QToolBar; +class QgsMapLayer; + + +class ManualLabelToolWidget : public QMainWindow +{ + Q_OBJECT + +public: + ManualLabelToolWidget(QWidget *parent = nullptr); + ~ManualLabelToolWidget(); + +private: // UI + void init_UI();// Init UI + +private: // ×é¼þ + QgsMapCanvas* map_canvas=nullptr; // map widget + QgsMapToolPan* map_tool_pan = nullptr; // map tool for pan zoom + + QgsLayerTreeModel* map_layerModel = nullptr; + QgsLayerTreeView* map_layerTreeView = nullptr; + QgsLayerTreeMapCanvasBridge* map_layer_Bridge = nullptr; + +private: // ²¼¾Ö + QDockWidget* layerTreeDock; + + // ״̬À¸ + QLabel* scaleLabel; // ±ÈÀý³ß + QLabel* CoordinaryTextLabel; // ͼ²ã×ø±êϵ + QLabel* PointXYLabel;// Êó±êÖ¸Õë×ø±ê + QLabel* UnitLabel; + QStatusBar* appStatusBar;// ״̬¿ØÖÆÀ¸ + +private: // ²Ëµ¥À¸ + QMenuBar* menubar; + +private: // »æÖÆÍ¼²ã + QToolBar* AiLabelToolBar; + +private: // Îļþ²Ëµ¥ + QMenu* fileMenu; + QAction* newAction; + QMenu* openMenu; + QAction* openRasterFolderAction; + QAction* openRasterAction; + QAction* openSLCRasterAction; + +private:// ±à¼­²Ëµ¥ + QMenu* editMenu; + +public slots:// ¹¦Äܺ¯ÊýÇø + void open(); + void openRasterLayerTriggered(); + void openRaster(QString &path); + +public slots: // ״̬À¸º¯Êý + void updateScaleLabel(double); + void updateCoordinateLabel(const QgsPointXY&); + + void onMapExtentsChanged(); + void onLayersChanged(QgsMapLayer* layer); + +public: // ³£ÓñäÁ¿Çø + QString lastFileDialogPath; + + + + + +}; + diff --git a/Manual-Label-Tool-Widget/ManualLabelToolWidget.qrc b/Manual-Label-Tool-Widget/ManualLabelToolWidget.qrc new file mode 100644 index 0000000..876730d --- /dev/null +++ b/Manual-Label-Tool-Widget/ManualLabelToolWidget.qrc @@ -0,0 +1,4 @@ + + + + diff --git a/Manual-Label-Tool-Widget/RasterOperator.cpp b/Manual-Label-Tool-Widget/RasterOperator.cpp new file mode 100644 index 0000000..6fd7b3e --- /dev/null +++ b/Manual-Label-Tool-Widget/RasterOperator.cpp @@ -0,0 +1 @@ +#include "RasterOperator.h" diff --git a/Manual-Label-Tool-Widget/RasterOperator.h b/Manual-Label-Tool-Widget/RasterOperator.h new file mode 100644 index 0000000..aeeb388 --- /dev/null +++ b/Manual-Label-Tool-Widget/RasterOperator.h @@ -0,0 +1,5 @@ +#pragma once +class RasterOperator +{ +}; + diff --git a/Manual-Label-Tool-Widget/main.cpp b/Manual-Label-Tool-Widget/main.cpp new file mode 100644 index 0000000..e3b1a43 --- /dev/null +++ b/Manual-Label-Tool-Widget/main.cpp @@ -0,0 +1,27 @@ +//#include "ManualLabelToolWidget.h" +//#include +// +//int main(int argc, char *argv[]) +//{ +// QApplication app(argc, argv); +// ManualLabelToolWidget window; +// window.show(); +// return app.exec(); +//} +#include +#include + +#include +#include +#include +#include "ManualLabelToolWidget.h" +//ÕûÊýÀàÐÍÖ÷º¯Êý(ÕûÊýÀàÐÍͳ¼Æ²ÎÊý¸öÊý,×Ö·ûÀàÐÍÖ¸ÕëÊý×éÖ¸Ïò×Ö·û´®²ÎÊý) +int main(int argc, char** argv) +{ + //QApplicationÓÐÇÒ½öÓÐÒ»¸öÓ¦ÓóÌÐòÀàµÄ¶ÔÏó + QApplication app(argc, argv); + ManualLabelToolWidget labeltoolwidget; + labeltoolwidget.show(); + //µÈ´ýÓû§²Ù×÷ + return app.exec(); +} diff --git a/Manual-Label-Tool-Widget/symbology-style.db b/Manual-Label-Tool-Widget/symbology-style.db new file mode 100644 index 0000000..214fcf7 Binary files /dev/null and b/Manual-Label-Tool-Widget/symbology-style.db differ diff --git a/Manual-Labeling-Client/Manual-Labeling-Client.sln b/Manual-Labeling-Client/Manual-Labeling-Client.sln new file mode 100644 index 0000000..7138e24 --- /dev/null +++ b/Manual-Labeling-Client/Manual-Labeling-Client.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35825.156 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Manual-Labeling-Client", "Manual-Labeling-Client.vcxproj", "{2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Manual-Label-Tool-Widget", "..\Manual-Label-Tool-Widget\Manual-Label-Tool-Widget.vcxproj", "{89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73}.Debug|x64.ActiveCfg = Debug|x64 + {2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73}.Debug|x64.Build.0 = Debug|x64 + {2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73}.Release|x64.ActiveCfg = Release|x64 + {2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73}.Release|x64.Build.0 = Release|x64 + {89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A}.Debug|x64.ActiveCfg = Debug|x64 + {89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A}.Debug|x64.Build.0 = Debug|x64 + {89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A}.Release|x64.ActiveCfg = Release|x64 + {89CAC2D1-AF91-42BC-BDE1-2BC8C490CE7A}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {47BDF617-39C7-4200-BDD6-E88A9224CB56} + EndGlobalSection +EndGlobal diff --git a/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj b/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj new file mode 100644 index 0000000..1927ff4 --- /dev/null +++ b/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj @@ -0,0 +1,122 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {2F3ECF9F-10C1-4D1D-BB73-38D7C3835F73} + QtVS_v304 + 10.0 + 10.0 + $(MSBuildProjectDirectory)\QtMsBuild + + + + Application + v143 + true + Unicode + + + Application + v143 + false + true + Unicode + + + + + + + qgis_qt5 + core;gui;widgets + debug + + + tools_qt5 + core;gui;widgets + release + + + + + + + + + + + + + + + + + + + + + + true + Use + stdafx.h + Level3 + true + true + + + Windows + true + + + stdafx.h;%(PrependInclude) + + + + + true + Use + stdafx.h + Level3 + true + true + true + true + + + Windows + false + true + true + + + stdafx.h;%(PrependInclude) + + + + + + + + + + + Create + Create + + + + + + + + + \ No newline at end of file diff --git a/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj.filters b/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj.filters new file mode 100644 index 0000000..a021ac0 --- /dev/null +++ b/Manual-Labeling-Client/Manual-Labeling-Client.vcxproj.filters @@ -0,0 +1,50 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + + + {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} + ts + + + + + Resource Files + + + Form Files + + + Header Files + + + Source Files + + + Header Files + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/Manual-Labeling-Client/ManualLabelingClient.cpp b/Manual-Labeling-Client/ManualLabelingClient.cpp new file mode 100644 index 0000000..ec607f4 --- /dev/null +++ b/Manual-Labeling-Client/ManualLabelingClient.cpp @@ -0,0 +1,12 @@ +#include "stdafx.h" +#include "ManualLabelingClient.h" + +ManualLabelingClient::ManualLabelingClient(QWidget *parent) + : QMainWindow(parent) +{ + ui.setupUi(this); +} + +ManualLabelingClient::~ManualLabelingClient() +{} + diff --git a/Manual-Labeling-Client/ManualLabelingClient.h b/Manual-Labeling-Client/ManualLabelingClient.h new file mode 100644 index 0000000..81f18b0 --- /dev/null +++ b/Manual-Labeling-Client/ManualLabelingClient.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include "ui_ManualLabelingClient.h" + +class ManualLabelingClient : public QMainWindow +{ + Q_OBJECT + +public: + ManualLabelingClient(QWidget *parent = nullptr); + ~ManualLabelingClient(); + +private: + Ui::ManualLabelingClientClass ui; +}; + diff --git a/Manual-Labeling-Client/ManualLabelingClient.qrc b/Manual-Labeling-Client/ManualLabelingClient.qrc new file mode 100644 index 0000000..8df6f23 --- /dev/null +++ b/Manual-Labeling-Client/ManualLabelingClient.qrc @@ -0,0 +1,4 @@ + + + + diff --git a/Manual-Labeling-Client/ManualLabelingClient.ui b/Manual-Labeling-Client/ManualLabelingClient.ui new file mode 100644 index 0000000..7344599 --- /dev/null +++ b/Manual-Labeling-Client/ManualLabelingClient.ui @@ -0,0 +1,29 @@ + + + ManualLabelingClientClass + + + ManualLabelingClientClass + + + + 0 + 0 + 600 + 400 + + + + ManualLabelingClient + + + + + + + + + + + + diff --git a/Manual-Labeling-Client/main.cpp b/Manual-Labeling-Client/main.cpp new file mode 100644 index 0000000..5b46cc4 --- /dev/null +++ b/Manual-Labeling-Client/main.cpp @@ -0,0 +1,11 @@ +#include "stdafx.h" +#include "ManualLabelingClient.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + ManualLabelingClient window; + window.show(); + return app.exec(); +} diff --git a/Manual-Labeling-Client/stdafx.cpp b/Manual-Labeling-Client/stdafx.cpp new file mode 100644 index 0000000..fd4f341 --- /dev/null +++ b/Manual-Labeling-Client/stdafx.cpp @@ -0,0 +1 @@ +#include "stdafx.h" diff --git a/Manual-Labeling-Client/stdafx.h b/Manual-Labeling-Client/stdafx.h new file mode 100644 index 0000000..c3cbb7d --- /dev/null +++ b/Manual-Labeling-Client/stdafx.h @@ -0,0 +1 @@ +#include