Files
BionxControl/doc/fancy_switch/mainwindow.h
2025-12-31 17:27:50 +01:00

123 lines
3.0 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
// MainWindow.h
#include <QMainWindow>
#include <QStatusBar>
#include <QToolBar>
#include "ThemeToggleWidget.h"
#include <QMainWindow>
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