QLineEdit控件常见的属性、方法和信号
一、QLineEdit控件常见属性和方法
二、QLineEdit控件常见信号
QLineEdit:单行文本输入框控件
一、QLineEdit控件常用属性和方法:
1. text:
描述:获取或设置文本框中的文本内容。
用法:可以使用
setText()
方法设置文本框的文本内容,或使用 text() 方法获取文本框中当前的文本。
cpp
setText(const QString &text):
2. placeholderText:
描述:设置一个占位文本,当文本框为空时显示,用于提示用户输入的预期内容。
用法:通过
setPlaceholderText()
方法设置占位文本,通常用于指示用户应该输入什么样的内容。
cpp
setPlaceholderText(const QString &text):
cpp
edt->setPlaceholderText("请输入密码")://提示输入文本
3. maxLength:
描述:设置文本框中允许输入的最大字符数。
用法:通过
setMaxLength()
方法设置最大字符数限制,这对于限制用户输入长度很有用。
cpp
setMaxLength(int length):
4. echoMode:
描述:设置文本的显示模式,用于处理密码等敏感信息的输入。
用法:使用
setEchoMode()
方法来设置显示模式,可以选择显示正常文本、密码字符或不显示。
cpp
setEchoMode(EchoMode mode):
cpp
edt->setEchoMode(QLineEdit::Password); //设置密码隐藏模式
edt->setEchoMode(QLineEdit::PasswordEchoOnEdit): //设置鼠标点击别的地方密码隐藏模式
5. readOnly:
描述:设置文本框是否为只读模式,即用户无法编辑内容。
用法:通过
setReadOnly()
方法设置是否为只读,适用于展示信息但不允许编辑的场景。
cpp
setReadOnly(bool readOnly):
6. selectedText():获得光标选中的文本数据
cpp
edt->selectedText();
二、QLineEdit控件常用信号
1. textChanged(const QString &text):
描述:当文本内容发生变化时触发此信号。
参数:text为当前文本内容。
用法:连接到这个信号的槽函数中,可以在文本发生变化时执行相应操作。
2. editingFinished():
描述:当编辑完成(例如用户按下回车键)时触发此信号。
用法:连接到这个信号的槽函数中,可以在编辑完成时执行相应操作。
3. returnPressed():
描述:当用户按下回车键时触发此信号。
用法:连接到这个信号的槽函数中,可以在用户按下回车键时执行相应操作。
4. cursorPositionChanged(int oldPos, int newPos):
描述:当光标位置发生变化时触发此信号。
参数:oldPos为变化前光标位置,newPos为变化后光标位置。
用法:连接到这个信号的槽函数中,可以在光标位置变化时执行相应操作。
5. selectionChanged():
描述:当选择的文本发生变化时触发此信号。
用法:连接到这个信号的槽函数中,可以在选择的文本变化时执行相应操作。
6. textEdited(const QString &text):
描述:当文本内容被编辑(不一定发生变化)时触发此信号。
参数:text为当前文本内容。
用法:连接到这个信号的槽函数中,可以在文本被编辑时执行相应操作。
cpp
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setFixedSize(640,480);
lab = new QLabel("行编辑器", this);
// ed1 = new QLineEdit(QLine(), this);
// ed1->setFixedSize(100, 50);
//setEchoMode(QLineEdit::Password):设置密码隐藏模式
ui->etd1->setEchoMode(QLineEdit::Password);
//setEchoMode(QLineEdit::PasswordEchoOnEdit):设置鼠标点击别的地方密码隐藏模式
ui->etd2->setEchoMode(QLineEdit::PasswordEchoOnEdit);
//setPlaceholderText():提示输入文本
ui->etd3->setPlaceholderText("密码");
//绑定事件(信号发送者, 触发事件地址, 信号接收者, 触发事件槽函数)
connect(ui->etd, &QLineEdit::editingFinished, this, &Widget::textFinshed);
//
//connect(ui->etd2, &QLineEdit:: textChanged, this, QOverload<QString>::of(&Widget::te));
}
Widget::~Widget()
{
delete ui;
}
void Widget::textFinshed()
{
ui->label->setText(ui->etd->text());
}
/*
* 设计器右键转到槽:自动声明定义槽函数,该函数已经绑定了信号
* 槽函数语法:void on_objectName_signal();
* on_objectName控件的signal信号被触发,系统自动调用该槽函数
*/
void Widget::on_etd1_selectionChanged() //on_对象名_信号()
{
//selectedText():获得光标选中的文本数据
ui->label_2->setText(ui->etd1->selectedText());
}
/*
* 当信号有形参,目的是触发信号时,传递数据。关联的槽函数,如果需要接收数据,则必须设计 同类型的形爹,如果不需要数据,则不必设置形参
* 信号与槽函数的参数个数关系: 槽函数形参个数 <= 信号的形参个数
*/
void Widget::on_etd2_textChanged()
{
ui->label_3->setText(ui->etd2->text());
}
void Widget::on_etd2_textChanged(const QString text)
{
ui->label_3->setText(text);
}