#ifndef LAUNCHPAGE_H #define LAUNCHPAGE_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // 窗口工作线程类,负责数据初始化 class WindowWorker : public QObject { Q_OBJECT public: explicit WindowWorker(int pageIndex, QObject *parent = nullptr) : QObject(parent), m_pageIndex(pageIndex), m_initialized(false) {} signals: void logMessage(const QString &message); void createWindowRequest(int pageIndex); void initializationComplete(int pageIndex, const QVariant &data); public slots: void initialize(); private: int m_pageIndex; bool m_initialized; }; QT_BEGIN_NAMESPACE namespace Ui { class LaunchPage; } QT_END_NAMESPACE class LaunchPage : public QWidget { Q_OBJECT public: LaunchPage(QWidget *parent = nullptr); ~LaunchPage(); void TrayIconInit(); void WinInit(); void AddLogInfo(QString Str); void loadNextWindow(QWidget *container,QHBoxLayout *hLayout); private slots: void createPages(); void createWindowInMainThread(int pageIndex); void storeWindowData(int pageIndex, const QVariant &data); // void initializeWindowWithData(QWidget *window, int pageIndex, const QVariant &data); // void onThreadFinished(); signals: void enterMainRequested(); void startWindowCreation(); void windowCreationCompleted(); private: Ui::LaunchPage *ui; QSystemTrayIcon *trayIcon; QMenu *trayIconMenu; QAction *minimizeAction; QAction *restoreAction; QAction *quitAction; QTextToSpeech *tts; TTSManager *ttsManager; // 窗口相关成员 P00_PublicPage *pubWin = nullptr; QScrollArea *scrollArea = nullptr; QWidget *container = nullptr; QHBoxLayout *hLayout = nullptr; QList workerThreads; QMap windowData; bool isNewScrollArea; uint8_t currentLoadingIndex = 0; int windowsCreated = 0; void adjustScrollAreaSize(); // 新增方法声明 void enableScrollNavigation(); void startNextWindowLoading(); }; #endif // LAUNCHPAGE_H