RasterProcessTool/GF3StripPatchProcess/main.cpp

113 lines
2.8 KiB
C++

/**
* @file GF3StripPatchProcess/main.cpp
* @brief Main entry point for the GF3 Strip Patch Process application.
* @details 适用于GF3卫星影像的条带批量化处理程序。
* @author 陈增辉(3045316072@qq.com)
* @date 2025-05-12
* @version 1.0
*/
#include <QtCore/QCoreApplication>
#include "QGF3StripBatchProcessDialog.h"
#include <QtWidgets/QApplication>
#include <QDateTime>
#include <QFile>
#include <QTextStream>
#include <iostream>
#pragma execution_character_set("utf-8")
// 自定义消息处理器函数
void customMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
QByteArray localMsg = msg.toLocal8Bit();
const char* file = context.file ? context.file : "";
const char* function = context.function ? context.function : "";
QString dateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
QFile outFile("application.log");
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream ts(&outFile);
switch (type) {
case QtDebugMsg:
{
QString logMessage = QString("%1 Debug: %2 (%3:%4, %5)")
.arg(dateTime) // Assuming dateTime is a QDateTime object and needs to be converted to string
.arg(QString::fromLocal8Bit(localMsg.constData()))
.arg(file)
.arg(context.line)
.arg(function);
ts << logMessage << "\n";
std::cout << logMessage.toLocal8Bit().constData() << std::endl;
break;
}
case QtInfoMsg:
{
QString logMessage = QString("%1 Info: %2 (%3:%4, %5)")
.arg(dateTime)
.arg(QString::fromLocal8Bit(localMsg.constData()))
.arg(file)
.arg(context.line)
.arg(function);
ts << logMessage << "\n";
std::cout << logMessage.toLocal8Bit().constData() << std::endl;
break;
}
case QtWarningMsg:
{
QString logMessage = QString("%1 Warning: %2 (%3:%4, %5)")
.arg(dateTime)
.arg(QString::fromLocal8Bit(localMsg.constData()))
.arg(file)
.arg(context.line)
.arg(function);
ts << logMessage << "\n";
break;
}
case QtCriticalMsg:
{
QString logMessage = QString("%1 Critical: %2 (%3:%4, %5)")
.arg(dateTime)
.arg(QString::fromLocal8Bit(localMsg.constData()))
.arg(file)
.arg(context.line)
.arg(function);
ts << logMessage << "\n";
std::cout << logMessage.toLocal8Bit().constData() << std::endl;
break;
}
case QtFatalMsg:
{
QString logMessage = QString("%1 Fatal: %2 (%3:%4, %5)")
.arg(dateTime)
.arg(QString::fromLocal8Bit(localMsg.constData()))
.arg(file)
.arg(context.line)
.arg(function);
ts << logMessage << "\n";
std::cout << logMessage.toLocal8Bit().constData() << std::endl;
abort();
}
}
}
int main(int argc, char* argv[])
{
qInstallMessageHandler(customMessageHandler);
QApplication a(argc, argv);
QFile qssFile(u8"./QSS/AMOLED.qss");
if (qssFile.open(QFile::ReadOnly)) {
a.setStyleSheet(qssFile.readAll());
}
qssFile.close();
showQGF3StripBatchProcessDialog(nullptr);
return a.exec();
}