QLineEdit

2018/08/09 09:47
阅读数 30
QLineEdit

行输入,作用进行输入,有最主要输入类型的控制,此外就是输入格式,即过滤一些东西

部件设置
函数 描述
void setAlignment(Qt::Alignment flag) 对齐方式
void setClearButtonEnabled(bool enable) 是否显示清除全部的按钮
void setCursorMoveStyle(Qt::CursorMoveStyle style) 鼠标形状
void setCursorPosition(int) 鼠标位置
void setDragEnabled(bool b) 允许拖动
void setEchoMode(QLineEdit::EchoMode) 输入类型,password等
void setFrame(bool)
void setInputMask(const QString &inputMask) 控制输入格式
void setMaxLength(int) 长度
void setModified(bool) 可修改
void setPlaceholderText(const QString &) 占位符,没输入时候显示的东西
void setReadOnly(bool) 只读
void setSelection(int start, int length) 设置选择范围
void setTextMargins(int left, int top, int right, int bottom) 设置边框
void setTextMargins(const QMargins &margins)
void setValidator(const QValidator *v) 控制可接受的输入
slots
void    clear()
void    copy() const
void    cut()
void    paste()
void    redo()
void    selectAll()
void    setText(const QString &)
void    undo()
signals
void    cursorPositionChanged(int oldPos, int newPos)
void    editingFinished()
void    returnPressed()
void    selectionChanged()
void    textChanged(const QString &text)
void    textEdited(const QString &text)
其他

1.mask

字符 含义
A ASCII字母字符是必须的,A-Z、a-z。
a ASCII字母字符是允许的,但不是必须的。
N ASCII字母字符是必须的,A-Z、a-z、0-9。
n ASCII字母字符是允许的,但不是必须的。
X 任何字符都是必须要的。
x 任何字符都是允许的,但不是必须要的。
9 ASCII数字是必须要的,0-9。
0 ASCII数字是允许的,但不是必须要的。
D ASCII数字是必须要的,1-9。
d ASCII数字是允许的,但不是必须要的 (1-9)。
# ASCII数字或加/减符号是允许的,但不是必须要的。
H 十六进制数据字符是必须要的,A-F、a-f、0-9。
h 十六进制数据字符是允许的,但不是必须要的。
B 二进制数据字符是必须要的,0-1。
b 二进制数据字符是允许的,但不是必须要的。
> 所有的字符字母都大写
< 所有的字符字母都小写
! 关闭大小写转换

| 使用 \ 去转义上述列出的字符。

例子
/*
 * QLineEdit
 * 输入类型的控制
 * setEchoMode(QLineEdit::Normal);                    
 * setPlaceholderText("Normal");                     
*/
mywidget::mywidget()
{
    setWindowTitle("my widget test");
    QVBoxLayout *layout=new QVBoxLayout(this);
    //echo mode
    QLineEdit *pnormal_line_edit = new QLineEdit(this);
    QLineEdit *pnoecho_line_edit = new QLineEdit(this);
    QLineEdit *ppassword_line_edit = new QLineEdit(this);
    QLineEdit *pdisplay_password_line_edit = new QLineEdit(this);

    pnormal_line_edit->setPlaceholderText("Normal");                        //提示框
    pnoecho_line_edit->setPlaceholderText("NoEcho");
    ppassword_line_edit->setPlaceholderText("Password");
    pdisplay_password_line_edit->setPlaceholderText("PasswordEchoOnEdit");

    pnormal_line_edit->setEchoMode(QLineEdit::Normal);                      //输入方式
    pnoecho_line_edit->setEchoMode(QLineEdit::NoEcho);
    ppassword_line_edit->setEchoMode(QLineEdit::Password);
    pdisplay_password_line_edit->setEchoMode(QLineEdit::PasswordEchoOnEdit);


    layout->addWidget(pnormal_line_edit);
    layout->addWidget(pnoecho_line_edit);
    layout->addWidget(ppassword_line_edit);
    layout->addWidget(pdisplay_password_line_edit);
    this->setFixedSize(300,300);
    this->show();
}
/*
 *AddAction()//添加行为
*/
mywidget::mywidget()
{
    setWindowTitle("my widget test");
    QVBoxLayout *layout=new QVBoxLayout(this);
    //echo mode
    QLineEdit *pline_edit = new QLineEdit(this);
    QAction *pleading_action=new QAction(this);
    pline_edit->setMaxLength(5);                                          //可输入五个字符
    pleading_action->setIcon(QIcon(":/image/wz2.jpg"));
    pline_edit->addAction(pleading_action,QLineEdit::LeadingPosition);
    pline_edit->setPlaceholderText("请输入搜索类容");                        //提示框
    QAction *pTrailingAction = pline_edit->addAction(QIcon(":/image/wz2.jpg"), QLineEdit::TrailingPosition);
    connect(pTrailingAction,QOverload<bool>::of(&QAction::triggered),[&pline_edit]{
        qDebug()<<"进行搜索的内容为:"<<pline_edit->text();});


    layout->addWidget(pline_edit);
    this->setFixedSize(300,300);
    this->show();
}
/*
 * 输入验证
 * QIntValidator整形类表达
 * QDoubleValidator小数类表达
 * QRegExp正则
 * QRegExpValidator正则类型数
 * 掩码
*/
mywidget::mywidget()
{
    setWindowTitle("my widget test");
    QVBoxLayout *layout=new QVBoxLayout(this);
    //input authentication
    QLineEdit *pline_edit = new QLineEdit(this);

    QIntValidator *int_validator=new QIntValidator(this);
    QDoubleValidator *double_validator=new QDoubleValidator(this);
    QRegExpValidator *regexp_validator=new QRegExpValidator(this);
    QRegExp regexp("[a-zA-Z0-9]+$");
    int_validator->setRange(1,99);
    double_validator->setRange(-200,200);
    double_validator->setDecimals(2);
    double_validator->setNotation(QDoubleValidator::StandardNotation);
    regexp_validator->setRegExp(regexp);

//    pline_edit->setValidator(int_validator);
    pline_edit->setValidator(double_validator);
//    pline_edit->setValidator(regexp_validator);

    QLineEdit *pline_edit2=new QLineEdit();
    pline_edit2->setInputMask("000.000.000.000;_");
//    pline_edit2->setInputMask("HH:HH:HH:HH:HH:HH;_");
//    pline_edit2->setInputMask("0000-00-00");
//    pline_edit2->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");

    layout->addWidget(pline_edit);
    layout->addWidget(pline_edit2);
    this->setFixedSize(300,300);
    this->show();
}
展开阅读全文
qt
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部