TextWidget.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef TEXTWIDGET_H
  2. #define TEXTWIDGET_H
  3. #include <QWidget>
  4. #include <QScopedPointer>
  5. #include <QList>
  6. class TextWidgetPrivate;
  7. class TextWidget : public QWidget
  8. {
  9. Q_OBJECT
  10. Q_DISABLE_COPY(TextWidget)
  11. public:
  12. enum Type {
  13. T_Translate = 0,
  14. T_NoTranslate = 1
  15. };
  16. class CustomString {
  17. public:
  18. explicit CustomString(const QString& string, const bool translate) {
  19. this->string = string;
  20. this->translate = translate;
  21. }
  22. ~CustomString() {}
  23. QString string;
  24. bool translate;
  25. };
  26. explicit TextWidget(QWidget *parent = NULL);
  27. ~TextWidget();
  28. void setCustomText(const QList<TextWidget::CustomString>& text);
  29. void setText(const QString &text);
  30. void setLanguageType(const TextWidget::Type type);
  31. void setAlignmentFlag(const int flags);
  32. void setFontPointSize(const int pointSize);
  33. void setAnimation(const bool flag);
  34. void setTextElideMode(const Qt::TextElideMode mode);
  35. protected:
  36. void paintEvent(QPaintEvent *event);
  37. private slots:
  38. void onTimeout();
  39. private:
  40. QScopedPointer<TextWidgetPrivate> m_Private;
  41. };
  42. #endif // TEXTWIDGET_H