Qt常用类QLineEdit

QLineEdit是Qt中的单行文本输入框,提供了多种对齐方式、最大输入长度设定、只读模式控制等功能。用户可以设置水平和垂直的对齐方式,如Qt::AlignHCenter用于居中对齐。此外,可以使用maxLength()和setMaxLength()来限制输入的最大长度,以及通过isReadOnly()和setReadOnly()切换只读状态。当内容变化时,会触发textChanged和textEdited信号,回车键按下则触发returnPressed信号。
摘要由CSDN通过智能技术生成

QLineEdit 类代表编程框,它可以让用户输入一个单行文本。

        

        构造

        QLineEdit 类支持以下构造函数:

[plain]  view plain  copy
  1. QLineEdit (QWidget *parent = 0);  
  2. QLineEdit(const QString &contents, QWidget *parent = 0);  

        其中 contents 表示编辑框中显示的内容。


        属性

        alignment 属性表示显示文本的对齐方式,相关成员函数如下:

Qt::Alignment alignment() const;           // 获取对齐方式  
void setAlignment(Qt::Alignment align);    // 设置对齐方式

        它的含义与 QLabel 类的 alignment 属性相同。
这里的 Qt::Alignment 类型有以下取值。

        1)Qt::AlignLeft::水平方向靠左。

        2)Qt::AlignRight:水平方向靠右。

        3)Qt::AlignHCenter:水平方向居中。

        4)Qt::AlignJustify:水平方向调整间距两端对齐。

        5)Qt::AlignTop:垂直方向靠上。

        6)Qt::AlignButton:垂直方向靠下。

        7)Qt::AlignVCenter:垂直方向居中。

        8)Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter。


        其中一个水平方向的取值和一个垂直方向的取值可以用 “按位或” 的方式组合起来以同时指定两个方向的对齐方式。默认的对齐方式为水平靠左、垂直居中。

echoMode 用于设置编辑框的回声模式。
EchoMode echoMode() const;        //获取回声状态
void setEchoMode(EchoMode);       //设置回声状态
这里的 EchoMode 类型有以下取值。
        QLineEdit::Normal   0    //正常明文状态
        QLineEdit::NoEcho  1   //不显示任何文本及长度,可能适用于密码输入
        QLineEdit::Password  2    //密码掩码输入,焦点重回可以继续输入
        QLineEdit::PasswordEchoOnEdit  3    //明文编辑,密码掩码显示,焦点重回不可以继续输入

        maxLength 属性表示编辑框可以容许的最大输入长度,相关成员函数如下:

       

[plain]  view plain  copy
  1. int maxLength() const;                                 // 获取最大输入长度  
  2. void setMaxLength(int len);                            // 设置最大输入长度  

        readOnly 属性表示编辑框的内容是否为只读的,即内容是否可以被用户修改,相关成员函数如下:

[plain]  view plain  copy
  1. bool isReadOnly() const;                               // 判断是否为只读的  
  2. void setReadOnly(bool on);                             // 判断是否为只读的   

        text 属性表示编辑框的内容,相关的成员函数如下:

[plain]  view plain  copy
  1. QString text() const;                                  // 获取编辑框的内容  
  2. void setText(const QString &text);                     // 设置编辑框的内容,这是一个槽  
 
        其中 setText 函数同时也是一个槽。要注意编辑框的内容不一定就是编辑框显示的内容,比如一个密码输入编辑框,用户输入的密码是不显示出来的。如果要得到编辑框的内容,则需使用下民的成员函数:   

[plain]  view plain  copy
  1. QString displayText() const;    // 得到显示的内容  

       frame 属性控制编辑框有没有边框,相关成员函数如下:

[plain]  view plain  copy
  1. bool hasFrame() const;    // 判断有没有边框  
  2. void setFrame(bool on);   // 设置有没有边框  

       下面两个成员函数虽然不是属性,但也与文本的显示有关:

[plain]  view plain  copy
  1. void setTextMargins(int left, int top, int right,int bottom);          // 设置边距  
  2. void getTextMargins(int *left, int *top, int *right, int *botton);     // 获取边距  

       这两个函数分别用于设置和获取文本显示的边距,上、下、左、右 4 个边距可以独立进行设置。



        信号

        当编辑框的内容发生变化时,将发射以下信号:

[plain]  view plain  copy
  1. void textChanged(const QString &text);  

        其中参数 text 是发生变化后的内容。

        当编辑框的内容被编辑时,将发射以下信号:

[plain]  view plain  copy
  1. void textEdited(const QString &text);  

        其中参数 text 是编辑后的内容。它与 textChanged 信号的主要区别在于,它只是在用户进行修改的时候发射,在程序中用 setText 修改时则不发射,而后者则在两种情况下都会发射。

         当在编辑框中按下回车键时,将发射以下信号:

[plain]  view plain  copy
  1. void returnPressed();  

         这个信号将在按下回车键或者编辑框失去焦点时发射。

   

         

         槽

         调用下面的槽可以清空编辑框中的内容:

[plain]  view plain  copy
  1. void clear();  


使用正则限制输入文本类型及长度:

    //设置只能输入数字,最长为2位
    QRegExp rx("[0-9]{2}");
    ui->lineEdit_fontSize->setValidator(new QRegExpValidator(rx, this));
添加右边图标
QAction *pTrailingAction = new QAction(this);
    pTrailingAction->setIcon(QIcon("G:/1.ico"));
    ui->lineEdit->addAction(pTrailingAction, QLineEdit::TrailingPosition);
    // 连接信号和槽
    connect(pTrailingAction, &QAction::triggered, this, &Widget::onSearch);

void Widget::onSearch(bool)
{
    qDebug()<<"图标被单击";
}


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值