123 lines
3.0 KiB
C++
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
|