main.cpp 2.1 KB

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