28 lines
803 B
C++
28 lines
803 B
C++
#pragma once
|
|
#include <QColor>
|
|
#include <QWidget>
|
|
namespace Psc {
|
|
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; // 可选上限
|
|
};
|
|
} // namespace Psc
|