QLineEdit 信号小剖析
QLineEdit 类代表编程框,它可以让用户输入一个单行文本。
构造
QLineEdit 类支持以下构造函数:
- QLineEdit (QWidget *parent = 0);
- QLineEdit(const QString &contents, QWidget *parent = 0);
其中 contents 表示编辑框中显示的内容。
属性
alignment 属性表示显示文本的对齐方式,相关成员函数如下:
- int maxLength() const; // 获取最大输入长度
- void setMaxLength(Qt::Alignment flag) const; // 设置对齐方式
它的含义与 QLabel 类的 alignment 属性相同。
maxLength 属性表示编辑框可以容许的最大输入长度,相关成员函数如下:
- int maxLength() const; // 获取最大输入长度
- void setMaxLength(int len); // 设置最大输入长度
readOnly 属性表示编辑框的内容是否为只读的,即内容是否可以被用户修改,相关成员函数如下:
- bool isReadOnly() const; // 判断是否为只读的
- void setReadOnly(bool on); // 判断是否为只读的
text 属性表示编辑框的内容,相关的成员函数如下:
- QString text() const; // 获取编辑框的内容
- void setText(const QString &text); // 设置编辑框的内容,这是一个槽
其中 setText 函数同时也是一个槽。要注意编辑框的内容不一定就是编辑框显示的内容,比如一个密码输入编辑框,用户输入的密码是不显示出来的。如果要得到编辑框的内容,则需使用下民的成员函数:
- QString displayText() const; // 得到显示的内容
frame 属性控制编辑框有没有边框,相关成员函数如下:
- bool hasFrame() const; // 判断有没有边框
- void setFrame(bool on); // 设置有没有边框
下面两个成员函数虽然不是属性,但也与文本的显示有关:
- void setTextMargins(int left, int top, int right,int bottom); // 设置边距
- void getTextMargins(int *left, int *top, int *right, int *botton); // 获取边距
这两个函数分别用于设置和获取文本显示的边距,上、下、左、右 4 个边距可以独立进行设置。
信号
当编辑框的内容发生变化时,将发射以下信号:
- void textChanged(const QString &text);
其中参数 text 是发生变化后的内容。
当编辑框的内容被编辑时,将发射以下信号:
- void textEdited(const QString &text);
其中参数 text 是编辑后的内容。它与 textChanged 信号的主要区别在于,它只是在用户进行修改的时候发射,在程序中用 setText 修改时则不发射,而后者则在两种情况下都会发射。
当在编辑框中按下回车键时,将发射以下信号:
- void returnPressed();
这个信号将在按下回车键或者编辑框失去焦点时发射。
槽
调用下面的槽可以清空编辑框中的内容:
- void clear();