qlineedit.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:9k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the QtGui module of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef QLINEEDIT_H
  38. #define QLINEEDIT_H
  39. #include <QtGui/qframe.h>
  40. #include <QtCore/qstring.h>
  41. QT_BEGIN_HEADER
  42. QT_BEGIN_NAMESPACE
  43. QT_MODULE(Gui)
  44. #ifndef QT_NO_LINEEDIT
  45. class QValidator;
  46. class QMenu;
  47. class QLineEditPrivate;
  48. class QCompleter;
  49. class QStyleOptionFrame;
  50. class QAbstractSpinBox;
  51. class QDateTimeEdit;
  52. class Q_GUI_EXPORT QLineEdit : public QWidget
  53. {
  54.     Q_OBJECT
  55.     Q_ENUMS(EchoMode)
  56.     Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask)
  57.     Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true)
  58.     Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength)
  59.     Q_PROPERTY(bool frame READ hasFrame WRITE setFrame)
  60.     Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode)
  61.     Q_PROPERTY(QString displayText READ displayText)
  62.     Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition)
  63.     Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
  64.     Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false)
  65.     Q_PROPERTY(bool hasSelectedText READ hasSelectedText)
  66.     Q_PROPERTY(QString selectedText READ selectedText)
  67.     Q_PROPERTY(bool dragEnabled READ dragEnabled WRITE setDragEnabled)
  68.     Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
  69.     Q_PROPERTY(bool undoAvailable READ isUndoAvailable)
  70.     Q_PROPERTY(bool redoAvailable READ isRedoAvailable)
  71.     Q_PROPERTY(bool acceptableInput READ hasAcceptableInput)
  72. public:
  73.     explicit QLineEdit(QWidget* parent=0);
  74.     explicit QLineEdit(const QString &, QWidget* parent=0);
  75. #ifdef QT3_SUPPORT
  76.     QT3_SUPPORT_CONSTRUCTOR QLineEdit(QWidget* parent, const char* name);
  77.     QT3_SUPPORT_CONSTRUCTOR QLineEdit(const QString &, QWidget* parent, const char* name);
  78.     QT3_SUPPORT_CONSTRUCTOR QLineEdit(const QString &, const QString &, QWidget* parent=0, const char* name=0);
  79. #endif
  80.     ~QLineEdit();
  81.     QString text() const;
  82.     QString displayText() const;
  83.     int maxLength() const;
  84.     void setMaxLength(int);
  85.     void setFrame(bool);
  86.     bool hasFrame() const;
  87.     enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit };
  88.     EchoMode echoMode() const;
  89.     void setEchoMode(EchoMode);
  90.     bool isReadOnly() const;
  91.     void setReadOnly(bool);
  92. #ifndef QT_NO_VALIDATOR
  93.     void setValidator(const QValidator *);
  94.     const QValidator * validator() const;
  95. #endif
  96. #ifndef QT_NO_COMPLETER
  97.     void setCompleter(QCompleter *completer);
  98.     QCompleter *completer() const;
  99. #endif
  100.     QSize sizeHint() const;
  101.     QSize minimumSizeHint() const;
  102.     int cursorPosition() const;
  103.     void setCursorPosition(int);
  104.     int cursorPositionAt(const QPoint &pos);
  105.     void setAlignment(Qt::Alignment flag);
  106.     Qt::Alignment alignment() const;
  107.     void cursorForward(bool mark, int steps = 1);
  108.     void cursorBackward(bool mark, int steps = 1);
  109.     void cursorWordForward(bool mark);
  110.     void cursorWordBackward(bool mark);
  111.     void backspace();
  112.     void del();
  113.     void home(bool mark);
  114.     void end(bool mark);
  115.     bool isModified() const;
  116.     void setModified(bool);
  117.     void setSelection(int, int);
  118.     bool hasSelectedText() const;
  119.     QString selectedText() const;
  120.     int selectionStart() const;
  121.     bool isUndoAvailable() const;
  122.     bool isRedoAvailable() const;
  123.     void setDragEnabled(bool b);
  124.     bool dragEnabled() const;
  125.     QString inputMask() const;
  126.     void setInputMask(const QString &inputMask);
  127.     bool hasAcceptableInput() const;
  128. public Q_SLOTS:
  129.     void setText(const QString &);
  130.     void clear();
  131.     void selectAll();
  132.     void undo();
  133.     void redo();
  134. #ifndef QT_NO_CLIPBOARD
  135.     void cut();
  136.     void copy() const;
  137.     void paste();
  138. #endif
  139. public:
  140.     void deselect();
  141.     void insert(const QString &);
  142. #ifndef QT_NO_CONTEXTMENU
  143.     QMenu *createStandardContextMenu();
  144. #endif
  145. Q_SIGNALS:
  146.     void textChanged(const QString &);
  147.     void textEdited(const QString &);
  148.     void cursorPositionChanged(int, int);
  149.     void returnPressed();
  150.     void editingFinished();
  151.     void selectionChanged();
  152. protected:
  153.     void mousePressEvent(QMouseEvent *);
  154.     void mouseMoveEvent(QMouseEvent *);
  155.     void mouseReleaseEvent(QMouseEvent *);
  156.     void mouseDoubleClickEvent(QMouseEvent *);
  157.     void keyPressEvent(QKeyEvent *);
  158.     void focusInEvent(QFocusEvent *);
  159.     void focusOutEvent(QFocusEvent *);
  160.     void paintEvent(QPaintEvent *);
  161. #ifndef QT_NO_DRAGANDDROP
  162.     void dragEnterEvent(QDragEnterEvent *);
  163.     void dragMoveEvent(QDragMoveEvent *e);
  164.     void dragLeaveEvent(QDragLeaveEvent *e);
  165.     void dropEvent(QDropEvent *);
  166. #endif
  167.     void changeEvent(QEvent *);
  168. #ifndef QT_NO_CONTEXTMENU
  169.     void contextMenuEvent(QContextMenuEvent *);
  170. #endif
  171. #ifdef QT3_SUPPORT
  172.     inline QT3_SUPPORT void repaintArea(int, int) { update(); }
  173. #endif
  174.     void inputMethodEvent(QInputMethodEvent *);
  175.     void initStyleOption(QStyleOptionFrame *option) const;
  176. public:
  177.     QVariant inputMethodQuery(Qt::InputMethodQuery) const;
  178.     bool event(QEvent *);
  179. protected:
  180.     QRect cursorRect() const;
  181. public:
  182. #ifdef QT3_SUPPORT
  183.     inline QT3_SUPPORT void clearModified() { setModified(false); }
  184.     inline QT3_SUPPORT void cursorLeft(bool mark, int steps = 1) { cursorForward(mark, -steps); }
  185.     inline QT3_SUPPORT void cursorRight(bool mark, int steps = 1) { cursorForward(mark, steps); }
  186.     QT3_SUPPORT bool validateAndSet(const QString &, int, int, int);
  187.     inline QT3_SUPPORT bool frame() const { return hasFrame(); }
  188. #ifndef QT_NO_VALIDATOR
  189.     inline QT3_SUPPORT void clearValidator() { setValidator(0); }
  190. #endif
  191.     inline QT3_SUPPORT bool hasMarkedText() const { return hasSelectedText(); }
  192.     inline QT3_SUPPORT QString markedText() const { return selectedText(); }
  193.     QT3_SUPPORT bool edited() const;
  194.     QT3_SUPPORT void setEdited(bool);
  195.     QT3_SUPPORT int characterAt(int, QChar*) const;
  196.     QT3_SUPPORT bool getSelection(int *, int *);
  197.     QT3_SUPPORT void setFrameRect(QRect) {}
  198.     QT3_SUPPORT QRect frameRect() const { return QRect(); }
  199.     enum DummyFrame { Box, Sunken, Plain, Raised, MShadow, NoFrame, Panel, StyledPanel,
  200.                       HLine, VLine, GroupBoxPanel, WinPanel, ToolBarPanel, MenuBarPanel,
  201.                       PopupPanel, LineEditPanel, TabWidgetPanel, MShape };
  202.     QT3_SUPPORT void setFrameShadow(DummyFrame) {}
  203.     QT3_SUPPORT DummyFrame frameShadow() const { return Plain; }
  204.     QT3_SUPPORT void setFrameShape(DummyFrame) {}
  205.     QT3_SUPPORT DummyFrame frameShape() const { return NoFrame; }
  206.     QT3_SUPPORT void setFrameStyle(int) {}
  207.     QT3_SUPPORT int frameStyle() const  { return 0; }
  208.     QT3_SUPPORT int frameWidth() const { return 0; }
  209.     QT3_SUPPORT void setLineWidth(int) {}
  210.     QT3_SUPPORT int lineWidth() const { return 0; }
  211.     QT3_SUPPORT void setMargin(int margin) { setContentsMargins(margin, margin, margin, margin); }
  212.     QT3_SUPPORT int margin() const
  213.     { int margin; int dummy; getContentsMargins(&margin, &dummy, &dummy, &dummy);  return margin; }
  214.     QT3_SUPPORT void setMidLineWidth(int) {}
  215.     QT3_SUPPORT int midLineWidth() const { return 0; }
  216. Q_SIGNALS:
  217.     QT_MOC_COMPAT void lostFocus();
  218. #endif
  219. private:
  220.     friend class QAbstractSpinBox;
  221. #ifdef QT_KEYPAD_NAVIGATION
  222.     friend class QDateTimeEdit;
  223. #endif
  224.     Q_DISABLE_COPY(QLineEdit)
  225.     Q_DECLARE_PRIVATE(QLineEdit)
  226.     Q_PRIVATE_SLOT(d_func(), void _q_clipboardChanged())
  227.     Q_PRIVATE_SLOT(d_func(), void _q_handleWindowActivate())
  228.     Q_PRIVATE_SLOT(d_func(), void _q_deleteSelected())
  229. #ifndef QT_NO_COMPLETER
  230.     Q_PRIVATE_SLOT(d_func(), void _q_completionHighlighted(QString))
  231. #endif
  232. };
  233. #endif // QT_NO_LINEEDIT
  234. QT_END_NAMESPACE
  235. QT_END_HEADER
  236. #endif // QLINEEDIT_H