商务网站建设实训,石家庄个人建站模板,网站做国际化,行情软件哈喽大家好#xff0c;我是20YC小二#xff01;欢迎关注(20YC编程)#xff0c;现在有免费《C程序员》视频教程下载哦#xff01;
~下面开始今天的分享内容~ 1. QLineEdit介绍
QLineEdit是一个单行文本编辑器#xff0c;允许用户输入和编辑纯文本。它提供了许多有用的编辑…哈喽大家好我是20YC小二欢迎关注(20YC编程)现在有免费《C程序员》视频教程下载哦
~下面开始今天的分享内容~ 1. QLineEdit介绍
QLineEdit是一个单行文本编辑器允许用户输入和编辑纯文本。它提供了许多有用的编辑功能如撤销和重做、剪切和粘贴、拖放等。 QLineEdit的主要功能和特点 轻量级QLineEdit是一个轻量级的控件占用的系统资源较少可以轻松地集成到各种应用程序中。易用性QLineEdit的使用方法简单明了对于开发人员来说可以很容易地将其添加到应用程序中并对其进行配置。支持各种输入模式QLineEdit可以根据不同的回显模式显示不同的输入内容例如密码模式或隐藏输入模式这增加了其在处理敏感信息时的安全性。输入限制和验证通过设置输入掩码和验证器QLineEdit可以限制用户输入的内容类型并进行有效性检查这有助于确保用户输入的数据符合预期的格式和要求。可交互性QLineEdit支持添加动作和清除按钮这增加了用户与输入框的交互性使用户能够更方便地操作输入框。外观可定制通过设置字体、样式表等属性QLineEdit的外观可以进行定制以适应不同的应用程序风格和用户需求。事件响应QLineEdit可以使用信号和槽机制来响应用户的输入事件例如文本改变、编辑完成等这使得开发人员能够在用户输入时执行相应的操作或触发其他事件。其他特性QLineEdit也允许开发者自定义输入框的一些特性比如可以设置输入框的只读属性防止用户随意修改其中的内容也可以设置光标的位置和选中文字的起始位置等 QLineEdit具有轻量级、易用性、支持各种输入模式、输入限制和验证、可交互性、外观可定制以及事件响应等特点适用于各种需要用户输入单行文本的应用场景。 如何使用QLineEdit 头文件#include QLineEdit cmakefind_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) qmakeQT widgets 继承于QWidget 2. QLineEdit默认风格显示例子
#include QLineEdit
QLineEdit * p_line_edit1 new QLineEdit(this);
p_line_edit1-setGeometry(15, 15, 200, 32);
p_line_edit1-setPlaceholderText(帐号);
QLineEdit * p_line_edit2 new QLineEdit(this);
p_line_edit2-setGeometry(15, 55, 200, 32);
p_line_edit2-setPlaceholderText(密码); 3. QLineEdit主要信号
// 当显示文本改变时发射该信号。
void textChanged(const QString text)
// 当编辑文本时发射该信号。
void textEdited(const QString text)
// 当光标移动位置改变时发射该信号。
void cursorPositionChanged(int oldPos, int newPos)
// 当按下(Return)返回键或(Enter)回车键时发射该信号。
void returnPressed()
// 当按下(Return)返回键或(Enter)回车键或输入框失去焦点时发射该信号。
void editingFinished()
// 当选择文本改变时发射该信号。
void selectionChanged()
// 当输入的按键不被文本框接受时发射该信号。
void inputRejected()
4. QLineEdit常用属性 text文本
// 访问函数
QString text() const
void setText(const QString text)displayText显示文本 根据echoMode响应模式返回不同字符 如QLineEdit::Normal返回text内容QLineEdit::NoEcho返回空字符串QLineEdit::Password返回 ********。 // 访问函数
QString displayText() const echoMode回应模式 QLineEdit的echoMode属性用来决定输入的内容如何显示。 QLineEdit::EchoMode宏有以下四个取值 QLineEdit::Normal 0 正常模式输入什么就显示什么。默认 QLineEdit::NoEcho 1 无回显模式输入的字符不会被显示出来。 QLineEdit::Password 2 密码模式不显示实际输入的字符而是以小圆圈代替这样别人就无法看到输入的字符。 QLineEdit::PasswordEchoOnEdit 3 密码回显模式当编辑框处于编辑状态时会显示密码字符。 // 访问函数
QLineEdit::EchoMode echoMode() const
void setEchoMode(QLineEdit::EchoMode mode)/**** 例子 ****/
p_line_edit-setEchoMode(QLineEdit::Password); placeholderText占位符文本 占位符文本一般用于在用户未输入任何内容时显示一些提示信息。 // 访问函数
QString placeholderText() const
void setPlaceholderText(const QString text)/**** 例子 ****/
p_line_edit-setPlaceholderText(请输入用户帐号);maxLength最大输入长度 默认最大长度 32767。 // 访问函数
int maxLength() const
void setMaxLength(int)/**** 例子 ****/
p_line_edit-setMaxLength(32); isClearButtonEnabled是否启用清空按钮 true启用清空按钮表示当输入框text内容不为空时在输入框右边是否显示一个清空按钮。默认为 false。 // 访问函数
void setClearButtonEnabled(bool enable)
bool isClearButtonEnabled() const/**** 例子 ****/
p_line_edit-setClearButtonEnabled(true); isReadOnly是否只读模式
// 访问函数默认 false。
bool isReadOnly() const
void setReadOnly(bool b)/**** 例子 ****/
p_line_edit-setReadOnly(true); alignment文本对齐方式 很多控件都具有对齐特性例如QLabel、QLineEdit、QPushButton等控件。 // 访问函数默认Qt::AlignLeft|Qt::AlignVCenter靠左垂直居中
Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)/**** 例子设置靠右垂直居中对齐 ****
p_line_edit-setAlignment(Qt::AlignRight|Qt::AlignVCenter); textMargins文本边缘 用于设置文本到边框四个边缘的距离。分别是left左边、top上边、right右边、bottom下边。 // 访问函数
void setTextMargins(int left, int top, int right, int botom)
void setTextMargins(const QMargins margins)
void getTextMargins(int *left, int *top, int *right, int *bottom) const
QMargins textMargins() const/**** 例子设置左边间隔15 ****/
p_line_edit-setTextMargins(15, 0, 0, 0); isModified是否文本被修改
// 访问函数
bool isModified() const
void setModified(bool b) isUndoAvailable是否允许撤销
// 访问函数
bool isUndoAvailable() const isRedoAvailable是否允许重做
// 访问函数
bool isRedoAvailable() const dragEnabled是否允许拖拽选择文本 true表示可以将文本框的选择文本拖拽移动到文本框其他位置上。 默认 false 不允许拖拽。 // 访问函数
void setDragEnabled(bool b)
bool dragEnabled() const
5. QLineEdit内置右键菜单
默认右键菜单功能截图 6. QLineEdit光标操作管理
光标位置函数
// 返回当前光标位置。默认 0
int cursorPosition() const
// 设置当前光标位置。
void setCursorPosition(int cursorPos)
// 根据 QPoint(x, y) 计算光标位置。
int cursorPositionAt(const QPoint pos)
光标移动函数 marktrue表示移动字符会加到选择文本。 markfalse表示会取消选择文本。 // 光标前移 steps 个字符。
void cursorForward(bool mark, int steps 1)
// 光标后移 steps 个字符。
void cursorBackward(bool mark, int steps 1)
// 光标前移 1 个词。
void cursorWordForward(bool mark)
// 光标后移 1 个词。
void cursorWordBackward(bool mark)
// 光标移到文本开头。
void home(bool mark)
// 光标移到文本末尾。
void end(bool mark)
光标回格和删除函数 回格删除光标前面字符。 删除删除光标后面字符。 // 在光标处回格。
void backspace()
// 在光标处删除。
void del()
7. QLineEdit选择文本函数
选择文本函数
// 选择全部文本。
void selectAll()
// 选择指定文本。
void setSelection(int start, int length)
// 返回选择文本。
QString selectedText() const
// 返回选择文本第一个字符位置。
int selectionStart() const
// 返回选择文本最后字符位置。
int selectionEnd() const
// 返回选择文本长度。
int selectionLength() const
取消选择函数
// 取消选择。
void deselect()
8. QLineEdit剪贴板操作函数
// 剪切选择文本到剪贴板。
void cut()
// 复制选择文本到剪贴板。
void copy() const
// 插入剪贴板文本内容到当前光标位置同时删除选择文本。
void paste()
9. QLineEdit快捷操作函数
// 清空文本。
void clear()
// 撤销上一次文本操作。
void undo()
// 重做上一次文本操作。
void redo()
// 插入newText到当前光标位置同时删除选择文本。
void insert(const QString newText)
10. QLineEdit输入限制验证器
QLineEdit的setValidator()函数用于设置输入框的验证器用于限制和检查用户的输入。验证器是一个实现了QValidator接口的对象它可以定义一组规则来验证用户输入的数据是否符合要求。
用户在输入数据时验证器将根据定义的规则对用户输入进行验证。如果输入数据不符合规则验证器将拒绝接受输入从而限制用户在输入框中输入无效数据。
// 访问函数
void setValidator(const QValidator *)
const QValidator * validator() const限制输入整数例子
#include QLineEdit
#include QLabel
#include QIntValidatorQLineEdit * p_line_edit new QLineEdit(this);// 创建一个整数验证器限制输入为0到99之间的整数
QIntValidator *validator new QIntValidator(0, 99, p_line_edit);
// 将验证器设置为QLineEdit的验证器
p_line_edit-setValidator(validator);
限制输入浮点数例子
#include QLineEdit
#include QLabel
#include QDoubleValidatorQLineEdit * p_line_edit new QLineEdit(this);// 创建一个浮点数验证器限制输入为0.0到9999.99之间的浮点数精度为小数点后2位
QDoubleValidator *validator new QDoubleValidator(0, 9999.99, 2, p_line_edit);
validator-setNotation(QDoubleValidator::StandardNotation);
// 将验证器设置为QLineEdit的验证器
p_line_edit-setValidator(validator);
11. QLineEdit完整示例 创建各种显示风格、和各种属性效果输入框控件演示限制整数输入、限制浮点数输入连接QLineEdit文本改变信号等功能。 .h 头文件源码
#ifndef LINE_EDIT_DEMO_DIALOG_H
#define LINE_EDIT_DEMO_DIALOG_H
#include QDialog
#include QLineEditclass line_edit_demo_dialog : public QDialog
{Q_OBJECTpublic:line_edit_demo_dialog(QWidget *parent nullptr);~line_edit_demo_dialog();private slots:void slotTextChanged(const QString text);private:QLineEdit * m_pLineEdit1 nullptr;QLineEdit * m_pLineEdit2 nullptr;QLineEdit * m_pLineEdit3 nullptr;QLineEdit * m_pLineEdit4 nullptr;QLineEdit * m_pLineEdit5 nullptr;QLineEdit * m_pLineEdit6 nullptr;QLineEdit * m_pLineEdit7 nullptr;QLineEdit * m_pLineEdit8 nullptr;QLineEdit * m_pLineEdit9 nullptr;};
#endif // LINE_EDIT_DEMO_DIALOG_H.cpp 源文件源码
#include line_edit_demo_dialog.h
#include QLabel
#include QIntValidator
#include QDoubleValidatorline_edit_demo_dialog::line_edit_demo_dialog(QWidget *parent): QDialog(parent)
{this-setWindowTitle(20YC编程社区);this-resize(720, 420);// 启用清空文本按钮m_pLineEdit1 new QLineEdit(this);m_pLineEdit1-setGeometry(15, 15, 200, 32);m_pLineEdit1-setPlaceholderText(请输入用户帐号);m_pLineEdit1-setClearButtonEnabled(true);// 密码回应模式m_pLineEdit2 new QLineEdit(this);m_pLineEdit2-setGeometry(15, 55, 200, 32);m_pLineEdit2-setPlaceholderText(密码);m_pLineEdit2-setEchoMode(QLineEdit::Password);// 限制输入整数QLabel * p_label1 new QLabel(限制输入整数, this);p_label1-setGeometry(240, 15, 120, 32);m_pLineEdit3 new QLineEdit(this);m_pLineEdit3-setGeometry(240, 55, 120, 32);// 创建一个整数验证器限制输入为0到99之间的整数QIntValidator *validator1 new QIntValidator(0, 99, m_pLineEdit3);// 将验证器设置为QLineEdit的验证器m_pLineEdit3-setValidator(validator1);// 限制输入浮点数QLabel * p_label2 new QLabel(限制输入浮点数, this);p_label2-setGeometry(380, 15, 120, 32);m_pLineEdit4 new QLineEdit(this);m_pLineEdit4-setGeometry(380, 55, 120, 32);// 创建一个浮点数验证器限制输入为0.0到9999.99之间的浮点数精度为小数点后2位QDoubleValidator *validator2 new QDoubleValidator(0, 9999.99, 2, m_pLineEdit4);validator2-setNotation(QDoubleValidator::StandardNotation);// 将验证器设置为QLineEdit的验证器m_pLineEdit4-setValidator(validator2);// 右边显示文本m_pLineEdit5 new QLineEdit(this);m_pLineEdit5-setGeometry(15, 100, 200, 32);m_pLineEdit5-setPlaceholderText(右边显示文本);m_pLineEdit5-setAlignment(Qt::AlignRight|Qt::AlignVCenter);// 左边间隔15像素m_pLineEdit6 new QLineEdit(this);m_pLineEdit6-setGeometry(15, 140, 200, 32);m_pLineEdit6-setPlaceholderText(左边间隔15像素);m_pLineEdit6-setTextMargins(15, 0, 0, 0);// 文本和背景颜色m_pLineEdit7 new QLineEdit(this);m_pLineEdit7-setGeometry(240, 100, 200, 32);m_pLineEdit7-setPlaceholderText(文本和背景颜色);m_pLineEdit7-setAlignment(Qt::AlignCenter|Qt::AlignVCenter);m_pLineEdit7-setStyleSheet(QLineEdit{color: rgb(255, 0, 0); background-color:rgb(0, 255, 0);});// 圆角边框颜色、背景透明m_pLineEdit8 new QLineEdit(this);m_pLineEdit8-setGeometry(240, 140, 200, 32);m_pLineEdit8-setPlaceholderText(圆角边框颜色、背景透明);m_pLineEdit8-setAlignment(Qt::AlignCenter|Qt::AlignVCenter);m_pLineEdit8-setStyleSheet(QLineEdit{background-color: transparent; border: 1px solid rgb(0, 0, 255); border-radius: 4px;});// 文本改变自动同步QLineEdit * p_line_edit9 new QLineEdit(this);p_line_edit9-setGeometry(15, 180, 480, 32);p_line_edit9-setMaxLength(1024);p_line_edit9-setPlaceholderText(输入文本自动同步到其他QLineEdit控件);connect(p_line_edit9, QLineEdit::textChanged, this, line_edit_demo_dialog::slotTextChanged);
}line_edit_demo_dialog::~line_edit_demo_dialog()
{
}void line_edit_demo_dialog::slotTextChanged(const QString text)
{m_pLineEdit1-setText(text);m_pLineEdit2-setText(text);m_pLineEdit3-setText(text);m_pLineEdit4-setText(text);m_pLineEdit5-setText(text);m_pLineEdit6-setText(text);m_pLineEdit7-setText(text);m_pLineEdit8-setText(text);
}-【End】-
喜欢本文章记得点赞、分享、关注哦~