跳转至

example/ui/widget/material/textarea/TextAreaExampleWindow.h

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

Namespaces

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

Classes

Name
class cf::ui::example::TextAreaExampleWindow
Main window for the Material TextArea Example.

Detailed Description

Material Design 3 TextArea Example - Main Window.

Author: CFDesktop Team

Version: 0.1

Date: 2026-03-01

A visual gallery to display all Material Design 3 text area 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 TextAreaExampleWindow : public QMainWindow {
    Q_OBJECT

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

  private:
    void setupUI();
    void createHeader();
    void createTextAreaVariantsSection();
    void createTextAreaStatesSection();
    void createCharacterCounterSection();
    void createMinMaxLinesSection();
    void createInteractionDemoSection();

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

  private slots:
    void onFilledTextChanged();
    void onOutlinedTextChanged();
    void onDemoTextChanged();

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

    // Header
    QLabel* titleLabel_;
    QLabel* subtitleLabel_;

    // Character counters
    QLabel* filledCounter_;
    QLabel* outlinedCounter_;

    // Interaction demo
    QLabel* charCountLabel_;
};

} // namespace cf::ui::example

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