main.cpp 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #include <QApplication>
  2. #include <QFontDatabase>
  3. #include <QMessageBox>
  4. #include "spdlog/spdlog.h"
  5. #include "logs/loginit.h"
  6. #include "EyeMapWidget.h"
  7. #include "EyeMapInfo.h"
  8. #include "OscDataInfo.h"
  9. #include "softdog.h"
  10. void addFont(const QString& appPath);
  11. int main(int argc, char* argv[])
  12. {
  13. QApplication app(argc, argv);
  14. /* 初始化日志库 */
  15. init_log();
  16. auto logger = spdlog::get("main");
  17. if(logger == nullptr)
  18. {
  19. SPDLOG_ERROR("main logger is nullptr");
  20. return -1;
  21. }
  22. SPDLOG_LOGGER_INFO(logger, "★ ★ ★ ★ ★ Oscilloscope ★ ★ ★ ★ ★");
  23. /* 加载字体 */
  24. auto appPath = QApplication::applicationDirPath();
  25. addFont(appPath);
  26. /* 验证加密狗 */
  27. #ifdef C_RELEASE
  28. // QString errMsg;
  29. // if(!(SoftDog::DogCheck(errMsg, 30, QLatin1String("eqmyt"))))
  30. // {
  31. // SPDLOG_LOGGER_ERROR(logger, "加密狗错误信息:{}", errMsg.toStdString());
  32. // QMessageBox::critical(nullptr, "错误", errMsg);
  33. // // MessageBox::execTip(errMsg, MessageBox::ERROR, true);
  34. // return 0;
  35. // }
  36. #endif
  37. /* 初始化数据 */
  38. GEyeMapInfo.initEyeMapInfo();
  39. /* 初始化示波器的数据内存区域 */
  40. GOscDataInfo.initOscData();
  41. EyeMapWidget w;
  42. w.show();
  43. w.startCapture();
  44. // std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
  45. // double a = 330.2, b = 2.2;
  46. // for (long long i = 0; i < 1000000000; ++i)
  47. // {
  48. // b = a * b;
  49. // }
  50. // std::chrono::steady_clock::time_point end1 = std::chrono::steady_clock::now();
  51. // long long c = 3200, d = 22;
  52. // for (long long i = 0; i < 1000000000; ++i) {
  53. // d = c * d;
  54. // }
  55. // std::chrono::steady_clock::time_point end2 = std::chrono::steady_clock::now();
  56. // SPDLOG_LOGGER_INFO(logger, "double time: {}", std::chrono::duration_cast<std::chrono::milliseconds>(end1 - begin).count());
  57. // SPDLOG_LOGGER_INFO(logger, "long long time: {}", std::chrono::duration_cast<std::chrono::milliseconds>(end2 - end1).count());
  58. return app.exec();
  59. }
  60. /* 加载字体 */
  61. void addFont(const QString& appPath)
  62. {
  63. QString fontPath = appPath + "/Rec/SiYuanBlack_ttf";
  64. /* 加载字体 */
  65. QFontDatabase::addApplicationFont(appPath + "/SiYuanBlack_Bold.ttf");
  66. QFontDatabase::addApplicationFont(appPath + "/SiYuanBlack_M.ttf");
  67. QFontDatabase::addApplicationFont(appPath + "/SiYuanBlack_R.ttf");
  68. /***************************************************
  69. * 字体使用方式
  70. * id1 ("思源黑体-粗")
  71. * id2 ("思源黑体M")
  72. * id3 ("思源黑体R")
  73. ****************************************************/
  74. // SPDLOG_LOGGER_DEBUG(m_logger,"id1 = {}",QFontDatabase::applicationFontFamilies(id1));
  75. // qDebug() << "id1" << QFontDatabase::applicationFontFamilies(id1);
  76. // qDebug() << "id2" << QFontDatabase::applicationFontFamilies(id2);
  77. // qDebug() << "id3" << QFontDatabase::applicationFontFamilies(id3);
  78. QFont font_main;
  79. font_main.setFamily("思源黑体R");
  80. font_main.setPixelSize(14);
  81. QApplication::setFont(font_main);
  82. }