main.cpp 3.5 KB

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