| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #include <QApplication>
- #include <QFontDatabase>
- #include <QDebug>
- #include <QDialog>
- #include <QDateTime>
- #include "widget.h"
- #include "spdlog/spdlog.h"
- #ifdef Q_OS_WIN
- #include <windows.h>
- #include <dbghelp.h>
- #endif
- void addFont();
- #ifdef Q_OS_WIN
- // 异常处理函数
- LONG __stdcall ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
- {
- // 生成带时间戳的Dump文件名
- QString dumpFileName = QString("crash_%1.dmp")
- .arg(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmss")));
- // QString dumpFileName = QString("crash_%1.dmp").arg(QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss"));
- HANDLE hDumpFile = CreateFileW( (LPCWSTR)dumpFileName.utf16(), GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
- if (hDumpFile != INVALID_HANDLE_VALUE) {
- // 定义Dump信息
- MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
- dumpInfo.ExceptionPointers = pException;
- dumpInfo.ThreadId = GetCurrentThreadId();
- dumpInfo.ClientPointers = TRUE;
- // 写入Dump文件
- MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, nullptr, nullptr);
- CloseHandle(hDumpFile);
- }
- // 这里可以添加错误提示、保存日志等操作
- // ...
- return EXCEPTION_EXECUTE_HANDLER;
- }
- #endif
- int main(int argc, char *argv[])
- {
-
- QApplication app(argc, argv);
- #ifdef Q_OS_WIN
- SetUnhandledExceptionFilter(ApplicationCrashHandler);
- #endif
- addFont();
- /* 设置日志输出等级 */
- spdlog::set_level(spdlog::level::debug);
- Widget w;
- w.show();
- SPDLOG_INFO("show1 start success");
- return app.exec();
- }
- /* 加载字体 */
- void addFont()
- {
- /* 加载字体 */
- QString fontPath = QApplication::applicationDirPath() + "/font/SiYuanBlack_ttf/";
- int id1 = QFontDatabase::addApplicationFont(fontPath + "/SiYuanBlack_Bold.ttf)");
- int id2 = QFontDatabase::addApplicationFont(fontPath + "/SiYuanBlack_M.ttf)");
- int id3 = QFontDatabase::addApplicationFont(fontPath + "/SiYuanBlack_R.ttf)");
- /***************************************************
- * 字体使用方式
- * id1 ("思源黑体-粗")
- * id2 ("思源黑体M")
- * id3 ("思源黑体R")
- ****************************************************/
- // SPDLOG_LOGGER_DEBUG(m_logger,"id1 = {}",QFontDatabase::applicationFontFamilies(id1));
- // SPDLOG_DEBUG("id1 = {}", QFontDatabase::applicationFontFamilies(id1));
- // SPDLOG_DEBUG("id2 = {}", QFontDatabase::applicationFontFamilies(id2));
- // SPDLOG_DEBUG("id3 = {}", QFontDatabase::applicationFontFamilies(id3));
- QFont font_main;
- font_main.setFamily("思源黑体R");
- font_main.setPixelSize(14);
- QApplication::setFont(font_main);
- }
|