main.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include <QApplication>
  2. #include <QFile>
  3. #include <QQuickWindow> // 关键头文件
  4. #include <QTextStream>
  5. #include "backendapimanager.h"
  6. #include "fireWidget/firingwidget.h"
  7. #include "global.h"
  8. #include "logger.h"
  9. #include "loginwindow.h"
  10. #include "mainwindow.h"
  11. #include "mqtt/mqttclient.h"
  12. int main(int argc, char* argv[]) {
  13. QApplication app(argc, argv);
  14. QQuickWindow::setSceneGraphBackend("software"); // 兼容性: 禁用GPU
  15. // 加载 QSS 文件
  16. QFile styleFile(":/qss/qss/tableview.qss");
  17. if (styleFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
  18. QTextStream stream(&styleFile);
  19. QString styleSheet = stream.readAll();
  20. app.setStyleSheet(styleSheet);
  21. styleFile.close();
  22. }
  23. // logger
  24. Logger::getInstance("application.log");
  25. Logger::getInstance().setMaxFileSize(2 * 1024 * 1024); // 2 MB
  26. Logger::getInstance().setMaxBackupFiles(3); // Keep 3 backup files
  27. Logger::getInstance().info("Application started from main.");
  28. loadConfig();
  29. backendAPIManager::initialize(apiBackendUrl.toString());
  30. // Initialize MQTT client with proper error handling
  31. try {
  32. mainMqttClient = new MqttClient();
  33. if (mainMqttClient != nullptr) {
  34. mainMqttClient->connectToMqttBroker("114.55.233.194", 1883, "hxgc", "hxgc123456", mqttClientId);
  35. Logger::getInstance().info("MQTT client initialized successfully");
  36. } else {
  37. Logger::getInstance().error("Failed to create MQTT client instance");
  38. }
  39. } catch (const std::exception& e) {
  40. Logger::getInstance().error(QString("Exception while initializing MQTT client: %1").arg(e.what()));
  41. } catch (...) {
  42. Logger::getInstance().error("Unknown exception while initializing MQTT client");
  43. }
  44. // MainWindow w;
  45. // Page w;
  46. // pageTest w;
  47. LoginWindow w;
  48. // loginWindow.show();
  49. // 设置应用程序图标
  50. app.setWindowIcon(QIcon(":/icons/icons/l634z-aceaj-001.ico"));
  51. // w.resize(screenWidth * 1, screenHeight * 0.95);
  52. // firingWidget w;
  53. w.show();
  54. return app.exec();
  55. }