Added more demo stuff.
This commit is contained in:
122
doc/fancy_switch/mainwindow.h
Normal file
122
doc/fancy_switch/mainwindow.h
Normal file
@@ -0,0 +1,122 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user