#pragma once #include #include namespace LtsWidgets { class LTSWIDGETS_EXPORT LtsElidedLabel : public QLabel { Q_OBJECT public: Q_PROPERTY(Qt::TextElideMode ElideMode READ elideMode WRITE setElideMode) using QLabel::QLabel; void setElideMode(Qt::TextElideMode elideMode); Qt::TextElideMode elideMode() const { return m_elideMode; } protected: void paintEvent(QPaintEvent *e) override; void resizeEvent(QResizeEvent *e) override; private: void updateCachedTexts(); private: Qt::TextElideMode m_elideMode = Qt::ElideRight; QString m_cachedElidedText; QString m_cachedText; }; }