Files
Renderive/Widget/Qt/Text_Shower.h
T
2026-08-01 20:09:45 +08:00

28 lines
790 B
C++

#pragma once
#include <QColor>
#include <QWidget>
namespace Flex_Qt {
class Text_Shower : public QWidget {
Q_OBJECT
public:
explicit Text_Shower(QWidget* parent = nullptr);
void set_text(const QString& text);
void set_title(const QString& title);
void set_max_width(int w);
[[nodiscard]] QSize sizeHint() const override;
[[nodiscard]] QSize minimumSizeHint() const override;
[[nodiscard]] bool hasHeightForWidth() const override;
[[nodiscard]] int heightForWidth(int width) const override;
protected:
void paintEvent(QPaintEvent*) override;
private:
[[nodiscard]] int calculate_height(int width) const;
private:
QString m_text;
QString m_title;
int m_padding = 8;
int m_radius = 8;
int m_max_width = 600; // 可选上限
};
}