大型门户网站建设哪便宜,会员卡管理系统设计,安装wordpress404,大连百姓网1、 QLineEdit 类是 QWidget 类的直接子类#xff0c;该类实现了一个单行的输入部件#xff0c;即行编辑器#xff1b; 2、验证器(QValidator 类)和输入掩码简介#xff1a;主要作用是验证用户输入的字符是否符合验证器 的要求#xff0c;即限制对用户的输入#xff0c;比…1、 QLineEdit 类是 QWidget 类的直接子类该类实现了一个单行的输入部件即行编辑器 2、验证器(QValidator 类)和输入掩码简介主要作用是验证用户输入的字符是否符合验证器 的要求即限制对用户的输入比如仅能输入数字而不能输入字母等。 3、行编辑器默认支持复制、剪切、粘贴等常用操作还支持一些常用的快捷键(比如 CtrlC 等)和鼠标右键的上下文菜单。 下表为默认支持的键盘快捷键
默认支持的快捷键按键说明按键说明左箭头使光标向左移动一个字符CtrlA全选Shift左箭头向左移动并选择一个字符CtrlC复制右箭头使光标向右移动一个字符CtrlInsert复制Shift右箭头向右移动并选择一个字符CtrlK删除到行尾Home将光标移至行的开头CtrlV粘贴End将光标移至行尾ShiftInsert粘贴Backspace删除光标左侧的字符CtrlX剪切CtrlBackspace删除光标左侧的一个单词ShiftDelete剪切(即删除并复制)Delete删除光标右侧的字符CtrlZ撤消最后的操作CtrlDelete删除光标右侧的一个单词CtrlY重做最后的操作
4、 QLineEdit 类中的属性
QLineEdit 类(行编辑器)属性速查表属性名说明属性名说明inputMask设置输入掩码acceptableInput是否符合掩码和验证的要求alignment对齐方式maxLength文本最大长度clearButtonEnabled是否显示清除按钮modified内容是否被修改cursorMoveStyle文字光标移动的方式placeholderText是否显示占位符文本提示信息。例如当用户未选中输入框时输入框中显示“请输入…”而用户选中输入框时“请输入…” 随之消失。cursorPosition文字光标的位置readOnly是否启用只读模式displayText获取回显的文本redoAvailable描述重做是否已启用dragEnabled是否启用拖放text获取和设置文本echoMode回显模式。 设定输入框中文本的显示样式该属性的可选值有以下几个 QLineEdit::Normal正常显示所输入的字符此为默认选项。 QLineEdit::NoEcho不显示任何输入的字符常用于密码类型的输入且长度保密。 QLineEdit::Password显示与平台相关的密码掩饰字符而不是实际输入的字符。当用户重新点击输入框时可以紧接着之前的文本继续输入。 QLineEdit::PasswordEchoOnEdit编辑时正常显示输入的字符编辑完成后改为用密码掩饰字符显示。当用户重新点击输入框时不能紧接着之前的文本继续输入。 undoAvailable描述撤消是否已启用。frame是否绘制边框selectedText获取选中的文本设置需使用函 数 setSelection()hasSelectedText是否有文本被选中
①、 acceptableInput const bool 访问函数 bool hasAcceptableInput() const; 此属性描述输入是否符合 inputMask 属性和 QValidator 类的要求。默认为 true。
②、 alignment Qt::Alignment 访问函数
Qt::Alignment alignment() const;
void setAlignment(Qt::Alignment); 此属性描述行编辑器文本的对齐方式默认为 Qt::AlignLeft(左对齐)和 AlignVenter(垂 直居中) Qt::Alignment 枚举详见“部件的公共枚举”章节。
③、 clearButtonEnabled bool //Qt5.2 访问函数
bool isClearButtonEnabled() const;
void setClearButtonEnabled(bool); 此属性描述行编辑器是否在不为空时显示“清除”按钮(见上图)。 ④、 frame bool 访问函数
bool hasFrame() const;
void setFrame(bool); 此属性描述是否绘制 QLineEdit 的默认边框(见下图)默认为 true。 ⑤、 placeholderText QString访问函数
QString placeholderText() const;
void setPlaceholderText(const QString); 此属性描述是否启用行编辑器的占位符文本(提示语)。若行编辑器是空的则当设置此属性后 即使行编辑器具有焦点也会使行编辑器显示一个灰色的占位符文本(见下图)若在 行编辑器中输入文本则会清除占位符文本。默认为空字符串 ⑥、 maxLength int 访问函数
int maxLength() const;
void setMaxLength(int); 此属性描述文本的最大允许长度若文本太长会被截断。当发生截断时任何选定 的文本会被取消文字光标位置设置为 0且显示字符串的第一部分。默认为 32767。 ⑦、 hasSelectedText const bool 访问函数
bool hasSelectedText() const; 此属性描述是否有文本被选中若用户选中部分或全部文本则为 true否则为 false 默认为 false。
⑧、 selectedText const QString 访问函数
QString selectedText() const; 获取选定的文本(要设置选中的文本需使用函数 setSelection())若没有文本被选中 则此属性为空字符串默认为空字符串。
⑨、 text QString 访问函数
QString text() const;
void setText(const QString); 信号 void textChanged(const QString ); 获取和设置行编辑器的文本。 若设置此属性则会清除所选的内容、撤消/重做历史 记录并将文字光标移至行尾并把 modified 属性设为 false。使用 setText()插入文本 内容时不会被验证。若文本过长则截断为 maxLength()的长度。默认值为空字符 串。
⑩、 cursorPosition int 访问函数
int cursorPosition() const;
void setCursorPosition(int); 此属性描述当前文字光标的位置默认为 0。
⑪、 cursorMoveStyle Qt::CursorMoveStyle访问函数
Qt::CursorMoveStyle cursorMoveStyle() const; void setCursorMoveStyle(Qt::CursorMoveStyle); 此属性描述文字光标(插入符)的移动样式 Qt::CursorMoveStyle 枚举可取两个值 其意义如下 Qt::LogicalMoveStyle在从左向右显示的文本中当按下左箭头键时光标 向左移动但在从右向右显示的文本中按下左箭头键时光标向右移动。 按下右箭头键的行为类似。 Qt::VisualMoveStyle无论是从左向右还是从右向左显示的文本按下左箭 头键时方向都向左移动按下右箭头键时都向右移动。
⑫、 dragEnabled bool 访问函数
bool dragEnabled() const;
void setDragEnabled(bool); 此属性描述是否启用拖动功能(即在选定的文本上按下鼠标并移动时可以移动或复制 选定的文本)默认是禁用的。
⑬、 readOnly bool 访问函数
bool isReadOnly() const;
void setReadOnly(bool); 此属性描述行编辑器是否是只读模式在只读模式下仍然可以复制文本但不能编 辑文本而且不会显示文字光标。默认为 false。 ⑭、 undoAvailable const bool 访问函数
bool isUndoAvailable() const; 此属性描述撤消(undo)是否可用只要用户修改了行编辑器中的文本则撤消就变成 可用的了。
⑮、 redoAvailable const bool 访问函数
bool isRedoAvailable() const; 此属性保存重做(redo)是否可用当在行编辑器中执行了一次或多次撤消(undo)操作 则重做就会变得可用默认为 false。
⑯、 echoMode EchoMode 访问函数
EchoMode echoMode() const;
void setEchoMode(EchoMode); 此属性描述行编辑器的回显模式回显模式是指行编辑器如何将用户输入的文本显示 (或回显)给用户 QLineEdit::EchoMode 枚举对回显模式进行了描述见下表
QLineEdit::EchoMode 枚举(无标志)成员值说明QLineEdit::Normal0逐字显示输入的字符(默认值)QLineEdit::NoEcho1不显示任何内容(可用于密码长度也需保密的密码)QLineEdit::Password2显示与平台相关的密码掩码字符(比如将输入的内容显示为*)。QLineEdit:: PasswordEchoOnEdit3在编辑时显示输入的字符否则以 Password 的形式显示字符。
switch (index) {case 0://默认输入什么即显示什么echoLineEdit-setEchoMode(QLineEdit::Normal);break;case 1://密码一般是用小黑点覆盖你所输入的字符echoLineEdit-setEchoMode(QLineEdit::Password);break;case 2://编辑时输入字符显示输入内容否则用小黑点代替echoLineEdit-setEchoMode(QLineEdit::PasswordEchoOnEdit);break;case 3://任何输入都看不见只是看不见不是不能输入echoLineEdit-setEchoMode(QLineEdit::NoEcho);
} ⑰、 displayText const QString 访问函数
QString displayText() const; 此属性用于获取回显(显示)的文本 若 echoMode 属性为 Normal 则返回的内容与 text()函数相同 若 echoMode 属性为 Password 或 PasswordEchoOnEdit则返回一串与平台相关 的长度为 text().length()的密码掩码字符比如返回****。 若 echoMode 属性是 NoEcho则返回一个空字符串。默认为空字符串。
⑱、 inputMask QString 访问函数
QString inputMask() const;
void setInputMask(const QString ); 此属性描述输入掩码 此处掩码的作用是限制用户输入的文本(比如只能输入数字而不能输入字母等)。 若未设置掩码则返回空字符串 QValidator 类可以代替掩码的功能。 设置空字符串可以取消掩码的设置。空格字符是空白的默认字符。 设置掩码的方法如下 行编辑器的掩码需要对每一位输入的字符使用掩码字符(见下表)进行逐位 设置。 比如 setInputMask(AAAAA);表示只能在行编辑器中的前 5 位输入 ASCII 字母不能输入数字或其他字符。 再如常见的 MAC 地址的输入就可 以使用 setInputMask(HH:HH:HH:HH:HH:HH);的掩码设置。 在掩码字符的分号之后的字符表示在行编辑器中输入空白时替换的字符。 比如 setInputMask(AAAAA;_);表示输入的空白使用_替换。 注 空格需要选中要输入的那一位然后才能输入空格。 下表为设置掩码时使用的掩码字符及其限制
⑲、 modified bool 访问函数
bool isModified() const;
void setModified(bool); 此属性描述行编辑器的内容是否被用户修改了。调用 setText()函数会将该属性重置 为 false。默认为 false。
6、 QLineEdit 类中的函数 1)、 构造函数 QLineEdit(QWidget* parent Q_NULLPTR); QLineEdit(const QString contents , QWidget* parent Q_NULLPTR);
2)、 用于编辑的函数 ①、 void copy() const; //槽复制 ②、 void cut(); //槽剪切若当前验证器不允许删除则 cut()将复制而不删除 ③、 void paste(); //槽粘贴若粘贴的文本不被验证器接受则什么也不做。 ④、 void insert(const QString newText); //插入 ⑤、 void backspace(); //删除左侧或所选择的文本。 ⑥、 void del(); //删除右侧或所选择的文本。
⑦、 void clear(); //清除行编辑器的内容。 ⑧、 void reod() ; //槽若重做可用则重做最后的操作 ⑨、 void undo(); //槽若撤消可用则取消最后一次的操作。
3)、 与选择有关的函数 ①、 void setSelection(int start, int length); 从位置 start 开始选择长度为 length 的文本长度允许是负的 ②、 void deselect(); 取消选定的文本 ③、 void selectAll(); //槽选择所有文本。 ④、 int selectionLength() const; //返回选择的文本长度 qt5.10 ⑤、 int selectionStart() const; int selectionEnd() const; //qt5.10 4)、 与文字光标有关的函数 ①、 void cursorPositionAt (const QPoint pos); //返回位于 pos 处的文字光标的位置
②、 void end(bool mark); void home(bool mark); 将文字光标移到开头/行尾。若 mark 为 true则从当前位置选择直到第一/最后一个位 置的文本否则取消已选定的文本。
③、 void cursorBackward (bool mark, int steps 1); void cursorForward(bool mark, int steps 1); 将文字光标向右(Forwar)/向左(Backward)移动 steps 个字符若 mark 为真则选择每 个移过的字符否则清除已选定的文本。
④、 void cursorWordBackward(bool mark); void cursorWordForward(bool mark); 向右(Forwar)/向左(Backward)将文字光标移动一个单词若 mark 为 true则选中该单 词否则取消被选中的内容。
5)、 以下函数用于设置和获取页边距 void setTextMargins(int left, int top, int right, int bottom); void setTextMargins(const QMargins margins); void getTextMargins(int *left, int *top, int *right, int *bottom) const; QMargins textMargins() const;
6)、 以下函数用于设置和获取验证器及自动完成器。
6.1 验证器
void setValidator( const QValidator* v); const QValidator* validator() const;
限制输入框中的文本内容比如输入框只包含整数。
只允许输入数字:
ui-lineEdit-setValidator(new QRegExpValidator(QRegExp([0-9]$))); 只允许输入浮点型数据
ui-lineEdit-setValidator(new QRegExpValidator(QRegExp(^(-?\d)(\.\d)?$))); 只能输入字母
ui-lineEdit-setValidator(new QRegExpValidator(QRegExp(^[A-Za-z]$))); 只能输入数字和字母
ui-lineEdit-setValidator(new QRegExpValidator(QRegExp([a-zA-Z0-9]$))); 只能输入-9999~9999的整型数据
ui-lineEdit-setValidator(new QRegExpValidato(new QRegExpValidator(QRegExp(^-?(9999|[0-9]?[0-9]?[0-9]?\\d(\\.\\d{1,4})?)$))); 只能输入-180~180的浮点型数据
ui-lineEditsetValidator(new QRegExpValidator(QRegExp(^-?(180|1?[0-7]?\\d(\\.\\d{1,4})?)$))); //只能输入数字其他更多可查看 QT QLineEdit 只能输入字母或数字输入格式约束正则表达式
6.2 自动完成器
void setCompleter(QCompleter* c) QCompleter* completer() const; 7)、 与上下文菜单有关的函数(即点击鼠标右键时弹出的菜单) ①、 QMenu* createStandardContextMenu(); 该函数创建了一个标准的上下文菜单这个函数默认是由 contextMenuEvent()事件处 理函数调用的。
②、 virtual void contextMenuEvent(QContextMenuEvent* event) //受保护的 该函数是 QWidget::contextMenuEvent()函数的重新实现。 该函数的作用是显示由 createStandardContextMenu()函数创建的标准上下文菜单 若要禁用行编辑器的上下文菜单可以设置 QWidget::contextMenuPolicy 属性的 值为 Qt::NoContextMenu。 若要使用自定义的上下文菜单则可以重新实现此函数。 若要扩展标准的上下文菜单 则重新实现该函数并向 createStandardContextMenu() 函数返回的菜单中添加内容然后返回修改后的菜单。 代码大致如下 void contextMenuEvent(QContextMenuEvent* event){ QMenu *menu createStandardContextMenu(); menu-addAction(XXX); …… menu-exec(event-globalPos()); delete menu; }
7、 QLineEdit 类中的信号 ①、 void cursorPositionChanged(int old, int new); //信号 当文字光标移动时就会发送此信号 old 是移动前的位置 new 是移动后的位置。
②、 void editingFinished(); //信号 当按下 enter 键或行编辑器失去焦点时发送此信号。若在行编辑器中设置了验证器 或掩码则只有当输入的内容符合掩码的要求或验证器返回 QValidator::Acceptable 时才会发送该信号。 比如 setInputMask(AAAA); 则只有在输入 4 位正确的字符之 后才会发送此信号若只正确输入了 3 位或 2 位则不会发送此信号。
③、 void returnPressed() //信号 当按下 enter 键时(注意失去焦点时不会发送)发送此信号。若在行编辑器中设置 了 验 证 器 或 掩 码 则 只 有 当 输 入 的 内 容 符 合 掩 码 的 要 求 或 验 证 器 返 回 QValidator::Acceptable 时才会发送该信号(具体见 editingFinished 信号)。
④、 void selectionChanged(); //信号 只要选择发生了改变就会发送此信号。 注意仅仅移动文字光标而未使选择的内 容发生改变则不会发送此信号。
⑤、 void textChanged(const QString text); //信号 当文本改变时发送此信号 text 参数保存的是新的文本。注意当以编程的方式更改文本时 (比如调用 setText())也会发送此信号。
⑥、 void textEdited(const QString text); //信号 当文本被编辑时发送此信号 text 参数保存的是新的文本。注意当编程的方式更改文本时(比如调用 setText())不会发送此信号。 以上函数及信号都比较简单示例略。