QLineEdit

一、描述

行编辑控件。

此控件具有默认的按键操作:

  • 左箭头:将光标向左移动一个字符。
  • Shift+左箭头:将文本向左移动并选择一个字符。
  • 右箭头:将光标向右移动一个字符。
  • Shift+右箭头:向右移动并选择一个字符的文本。
  • Home:将光标移动到行首。
  • End:将光标移动到行尾。
  • Backspace:删除光标左侧的字符。
  • Ctrl+Backspace:删除光标左侧的所有内容。
  • Delete:删除光标右侧的字符。
  • Ctrl+Delete:删除光标右侧的所有内容。
  • Ctrl+A:全选。
  • Ctrl+C、Ctrl+Insert:将选定的文本复制到剪贴板。
  • Ctrl+V:粘贴剪贴板文本。
  • Shift+Insert:粘贴剪贴板文本。
  • Ctrl+X、Shift+Delete:剪切。
  • Ctrl+Z:撤销上一个操作。
  • Ctrl+Y:回撤上次撤销的操作。

二、类型成员

1、enum QLineEdit::ActionPosition:此枚举描述了应如何显示要添加的动作小部件。

  • LeadingPosition:当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的左侧,使用 Qt::RightToLeft 时,小部件显示在文本的右侧。
  • TrailingPosition:当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的右侧,使用 Qt::RightToLeft 时,小部件显示在文本的左侧。

2、enum QLineEdit::EchoMode:此枚举描述了应如何显示内容。

  • Normal:在输入时显示字符。 这是默认设置。
  • NoEcho:不显示任何内容。这可能适用于即使密码长度也要保密的密码。
  • Password:显示平台相关的密码掩码字符而不是实际输入的字符。
  • PasswordEchoOnEdit:在编辑时显示输入的字符,否则显示与密码相同的字符。

三、属性成员

1、【只读】acceptableInput : const bool

输入是否要满足 inputMask 和验证器。默认为 true。

2、alignment : Qt::Alignment

对齐方式,默认为 Qt::AlignLeft | Qt::AlignVCenter

3、clearButtonEnabled : bool

是否在非空时显示清除按钮。默认为 false。

QLineEdit_第1张图片

4、cursorMoveStyle : Qt::CursorMoveStyle

光标的移动方式。默认为 Qt::LogicalMoveStyle

  • Qt::LogicalMoveStyle:在从左到右的文本块内,按左箭头键时减少光标位置,按右箭头键时增加光标位置。如果文本块是从右到左的,则应用相反的行为。
  • Qt::VisualMoveStyle:按下左箭头键将始终使光标向左移动,无论文本的书写方向如何。 按右箭头键将始终使光标向右移动。

5、cursorPosition : int

当前光标位置。默认为 0。在适当的时候设置光标位置会导致重绘。

6、displayText : const QString

显示的文本。

  • 如果 echoMode Normal,则返回与 text() 相同的值
  • 如果 echoMode Password PasswordEchoOnEdit 则返回一个平台相关的密码掩码字符串,例如“******”
  • 如果 echoMode NoEcho,则返回一个空字符串“”。

7、dragEnabled : bool

选择的文本是否可拖动,默认为 false。

QLineEdit_第2张图片

上图上面的可拖动下面的不可拖动。

8、echoMode : EchoMode

显示模式。默认为 Normal

9、frame : bool

是否使用特定于平台的框架绘制自身。默认为 true。

QLineEdit_第3张图片

10、【只读】hasSelectedText : const bool

是否有任何文本被选中。

11、inputMask : QString

验证输入掩码。

验证器可以代替掩码使用,也可以与掩码结合使用。

通过传递一个空字符串 ("") 取消设置掩码并返回到正常的 QLineEdit 操作。

输入掩码是输入模板字符串。它可以包含以下元素:

  • 掩码字符:限制有效的输入字符
  • 元字符:特殊含义的字符
  • 分隔符:所有其他字符都被视为不可变的分隔符

掩码(小写字母表示与大写字母同类型但不是必须的):

  • A:字母类别的字符,A-Z、a-z。
  • a:字母类别的字符允许但不是必需的。
  • N:字母或数字类别的字符,A-Z、a-z、0-9。
  • n:类似。
  • X:任何非空白字符。
  • x:类似。
  • 9:数字类别的字符,0-9。
  • 0:数字类别的字符但不是必需的。
  • D:数字类别的字符,要求大于零,1-9
  • d:类似。
  • #:数字类别的字符,或允许但不是必需的加号/减号。
  • H:十六进制字符。 A-F,a-f,0-9。
  • h:类似。
  • B:二进制字符。0-1。
  • b:类似。

元字符:

  • >:以下所有字母字符都是大写的。
  • <:以下所有字母字符均小写。
  • !:关闭大小写转换。
  • ;c:终止输入掩码并将空白字符设置为 c。
  • [ ] { }:预订的。
  • \:使用 \ 转义上面列出的特殊字符以将它们用作分隔符。

如果当前内容不满足输入掩码的要求,则 hasAcceptableInput() 方法返回 false。

例如:

  • IP地址(空白字符为下划线):000.000.000.000;_

QLineEdit_第4张图片

  • 日期:0000-00-00

QLineEdit_第5张图片

  • 许可证号码(空格是#,所有(字母)字符都转换为大写):>AAAAA-AAAAA-AAAAA;#

QLineEdit_第6张图片

12、maxLength : int

文本的最大允许长度。默认为 32767。如果文本太长,则在限制处截断。

如果行编辑具有 inputMask,则 inputMask 定义最大字符串长度。

13、modified : bool

内容是否已被用户修改。

用户更改内容时为 true。调用 setText() 为 false。

14、placeholderText : QString

占位符文本。

只要行编辑为空,设置此属性就会显示灰色的占位符文本。

15、readOnly : bool

是否为只读。默认为 false。

在只读模式下,用户仍然可以将文本复制到剪贴板,或者拖放文本(如果 echoMode() 为 Normal),但不能对其进行编辑。

QLineEdit 在只读模式下不显示光标。

16、【只读】redoAvailable : const bool

当前回撤是否可用。默认为 false。

一旦用户对行编辑中的文本执行了一个或多个撤消操作,回撤就可用。

17、【只读】selectedText : const QString

选定的文本。

18、text : QString

文本。设置此属性会清除选择、清除撤消/重做历史、将光标移动到行尾并将 modified 属性重置为 false。使用 setText() 插入文本时不会验证文本。

19、【只读】undoAvailable : const bool

撤消是否可用。一旦用户修改了行编辑中的文本,撤消就可用。

四、成员函数

1、void clear()

清除内容。

2、void copy()

将选定的文本复制到剪贴板。

QLineEdit_第7张图片

3、【信号】void cursorPositionChanged(int oldPos, int newPos)

每当光标移动时都会发出此信号。以前的位置由 oldPos 给出,新的位置由 newPos 给出。

4、void cut()

剪切选中的文本。如果当前验证器不允许删除选定的文本,则将复制而不删除。

QLineEdit_第8张图片

5、【信号】void editingFinished()

当按下 Return 或 Enter 键时,或者如果失去焦点并且自上次发出此信号以来其内容已更改,则会发出此信号。

6、【信号】void inputRejected()

当用户按下不被认为是可接受输入的键时,或者尝试输入超出最大长度的更多字符。会发出此信号。

在部分文本被接受但不是全部被接受的情况下,也会发出此信号。例如,如果设置了最大长度,并且剪贴板文本在粘贴时比最大长度长的时候。

7、void paste()

在光标位置插入剪贴板的文本,删除任何选定的文本。

QLineEdit_第9张图片

8、void redo()

如果回撤可用,则回撤最后一个操作。

9、【信号】void returnPressed()

该信号在按下 Return 或 Enter 键时发出。

10、void selectAll()

选择所有文本并将光标移动到末尾。

11、【信号】void selectionChanged()

只要选择内容发生变化,就会发出该信号。

12、【信号】void textChanged(const QString &text)

每当文本更改时都会发出此信号。text 参数是新文本。

textEdited() 不同,此信号也会在以编程方式更改文本时发出,例如调用 setText()。

13、【信号】void textEdited(const QString &text)

每当编辑文本时都会发出此信号。text 参数是新文本。

textChanged() 不同,当以编程方式更改文本时不会发出此信号。

14、void undo()

如果撤消可用,则撤消最后一个操作。

15、void addAction(QAction *action, QLineEdit::ActionPosition position)

        QAction *addAction(const QIcon &icon, QLineEdit::ActionPosition position)

将动作添加到该位置的动作列表中。

    QIcon icon = QApplication::style()->standardIcon((QStyle::StandardPixmap)0);
    auto action = new QAction(icon,"测试");
    ui->lineEdit->addAction(action,QLineEdit::LeadingPosition);

    QIcon icon = QApplication::style()->standardIcon((QStyle::StandardPixmap)0);
    auto action = new QAction(icon,"测试");
    ui->lineEdit->addAction(action,QLineEdit::TrailingPosition);

 QLineEdit_第10张图片

 16、void backspace()

如果未选择文本,则删除文本光标左侧的字符并将光标向左移动一位。如果选择了任何文本,则光标将移动到所选文本的开头并删除所选文本。

17、void contextMenuEvent(QContextMenuEvent *event)

显示使用 createStandardContextMenu() 创建的标准上下文菜单。

  • 如果不希望行编辑有上下文菜单,可以将其 contextMenuPolicy 设置为 Qt::NoContextMenu
  • 如果要自定义上下文菜单,重新实现此功能。
  • 如果要扩展标准上下文菜单,重新实现此函数,调用 createStandardContextMenu() 并扩展返回的菜单。
void LineEdit::contextMenuEvent(QContextMenuEvent *event)
{
    QMenu *menu = createStandardContextMenu();
    menu->addAction(tr("My Menu Item"));
    //...
    menu->exec(event->globalPos());
    delete menu;
}

18、QMenu *createStandardContextMenu()

创建标准上下文菜单,当用户用鼠标右键单击行编辑时显示该菜单。它从默认的 contextMenuEvent() 处理程序中调用。弹出菜单的所有权转移给调用者。

19、void cursorBackward(bool mark, int steps = 1)

       void cursorForward(bool mark, int steps = 1)

将光标向后 / 前移动 steps 个字符。如果 mark 为 true,则每个移过的字符都将被到选中,否则取消选中。

20、void cursorWordBackward(bool mark)

       void cursorWordForward(bool mark)

将光标向 / 前后移动一个单词。如果 mark 为 true,则该词也被选中。

21、void del()

如果未选择文本,则删除文本光标右侧的字符。如果选择了任何文本,则光标将移动到所选文本的开头并删除所选文本。

22、void deselect()

取消选择所有选中的文本。

23、void end(bool mark)

        void home(bool mark)

将文本光标移动到行尾。如果 mark 为 true,则选择最后一个位置的文本;否则取消选择已经选中的文本。

24、void insert(const QString &newText)

删除任何选定的文本,并验证 newText,有效则插入 newText。

25、int selectionEnd()

       int selectionStart()

返回选中的 最后一个 / 第一个 字符的索引,如果没有选择文本,则返回 -1。

26、int selectionLength()

返回选择的长度。

27、void setCompleter(QCompleter *c)

设置完成器。

28、void setSelection(int start, int length)

从位置 start 和长度 length 选择文本。允许负长度。

29、void setTextMargins(int left, int top, int right, int bottom)

设置框架内文本周围的边距。

30、void setValidator(const QValidator *v)

设置验证器。

你可能感兴趣的:(#,Qt,Widgets基本小部件类,qt)