跳转至

example/ui/widget/material/button/ButtonExampleWindow.h

Material Design 3 Button Example - Main Window. More...

Namespaces

Name
cf
cf::ui
cf::ui::example

Classes

Name
class cf::ui::example::ButtonExampleWindow
Main window for the Material Button Example.

Detailed Description

Material Design 3 Button Example - Main Window.

Author: CFDesktop Team

Version: 0.1

Date: 2026-03-01

A visual gallery to display all Material Design 3 button variants with various states and configurations.

Source code

#pragma once

#include <QGridLayout>
#include <QGroupBox>
#include <QHBoxLayout>
#include <QLabel>
#include <QMainWindow>
#include <QScrollArea>
#include <QVBoxLayout>
#include <QWidget>

namespace cf::ui::example {

class ButtonExampleWindow : public QMainWindow {
    Q_OBJECT

  public:
    explicit ButtonExampleWindow(QWidget* parent = nullptr);
    ~ButtonExampleWindow() override;

  private:
    void setupUI();
    void createHeader();
    void createButtonVariantsSection();
    void createButtonStatesSection();
    void createButtonWithIconSection();
    void createElevationSection();
    void createInteractionDemoSection();

    QGroupBox* createGroupBox(const QString& title);
    QWidget* createScrollContent();

  private slots:
    void onDemoButtonClicked();

  private:
    // UI components
    QWidget* centralWidget_;
    QVBoxLayout* mainLayout_;
    QScrollArea* scrollArea_;
    QWidget* scrollContent_;
    QVBoxLayout* scrollLayout_;

    // Header
    QLabel* titleLabel_;
    QLabel* subtitleLabel_;

    // Interaction demo
    int clickCount_ = 0;
};

} // namespace cf::ui::example

Updated on 2026-03-09 at 10:14:01 +0000