lineedit-autoresize.hpp 610 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <QTextEdit>
  3. #include <QAbstractTextDocumentLayout>
  4. #include <QKeyEvent>
  5. class LineEditAutoResize : public QTextEdit {
  6. Q_OBJECT
  7. Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength)
  8. public:
  9. LineEditAutoResize();
  10. int maxLength();
  11. void setMaxLength(int length);
  12. QString text();
  13. void setText(const QString &text);
  14. private:
  15. int m_maxLength;
  16. signals:
  17. void returnPressed();
  18. private slots:
  19. void checkTextLength();
  20. void resizeVertically(const QSizeF &newSize);
  21. void SetPlainText(const QString &text);
  22. protected:
  23. virtual void keyPressEvent(QKeyEvent *event) override;
  24. };