#ifndef MAINWINDOW_H #define MAINWINDOW_H // MainWindow.h #include #include #include #include "ThemeToggleWidget.h" #include class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget* parent = nullptr) : QMainWindow(parent) { setupUI(); setupStatusBar(); } private: void setupUI() { // Dein UI Setup setWindowTitle("My Application"); resize(800, 600); } void setupStatusBar() { QStatusBar* statusBar = this->statusBar(); statusBar->setSizeGripEnabled(true); // Theme Toggle Widget rechts hinzufügen ThemeToggleWidget* themeToggle = new ThemeToggleWidget(this); statusBar->addPermanentWidget(themeToggle); // Optional: Reagiere auf Theme-Änderungen connect(themeToggle, &ThemeToggleWidget::themeChanged, this, &MainWindow::onThemeChanged); // Status-Message links statusBar->showMessage("Ready"); } private slots: void onThemeChanged(bool isDarkMode) { qDebug() << "Theme changed to:" << (isDarkMode ? "Dark" : "Light"); // Hier kannst du zusätzliche Aktionen durchführen: // - Icons aktualisieren // - Custom Widgets neu zeichnen // - Settings speichern } }; // ============================================================================ // Alternative: Mit QAction für Menu/Toolbar // ============================================================================ /* class MainWindowB : public MainWindow { Q_OBJECT public: MainWindowB(QWidget* parent = nullptr) : MainWindow(parent) { //setupUI(); setupThemeToggle(); } private: void setupThemeToggle() { // Als QAction (kann in Menu UND StatusBar) m_themeAction = new QAction(this); m_themeAction->setText("🌙"); // Initial: Dark Mode Icon m_themeAction->setToolTip("Toggle Dark/Light Mode"); connect(m_themeAction, &QAction::triggered, this, &MainWindowB::toggleTheme); // In Toolbar QToolBar* toolbar = addToolBar("Main"); toolbar->addAction(m_themeAction); // UND in StatusBar QPushButton* statusBarThemeBtn = new QPushButton("🌙", this); statusBarThemeBtn->setFixedSize(32, 24); statusBarThemeBtn->setFlat(true); statusBarThemeBtn->setCursor(Qt::PointingHandCursor); connect(statusBarThemeBtn, &QPushButton::clicked, this, &MainWindowB::toggleTheme); statusBar()->addPermanentWidget(statusBarThemeBtn); } private slots: void toggleTheme() { m_isDarkMode = !m_isDarkMode; QString icon = m_isDarkMode ? "☀️" : "🌙"; m_themeAction->setText(icon); // Theme anwenden... if (m_isDarkMode) { applyDarkTheme(); } else { applyLightTheme(); } } private: bool m_isDarkMode = true; QAction* m_themeAction; }; */ #endif // MAINWINDOW_H