lineEdit輸入內容控制

1、在頭文件的類聲明中加入槽

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
private slots://輸入內容改變槽
    void on_lineEdit_textChanged();
};

#endif // DIALOG_H

2、在源文件中構造函數中添加代碼

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //以下爲添加代碼
    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
    //只允許第一個字元輸入大小寫英文字母,後面接一位非零的數字,再接0-2位可爲0的數字
    ui->lineEdit->setValidator(new QRegExpValidator(regExp,this));
    connect(ui->okButton,SIGNAL(clicked()),this,SLOT(accept()));
    connect(ui->cancelButton,SIGNAL(clicked()),this,SLOT(reject()));
}
//實現槽函數,根據lineEdit中輸入的文字是否有效來啓用或停用OK按鈕,
void Dialog::on_lineEdit_textChanged()
{
    ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}

Dialog::~Dialog()
{
    delete ui;
}
發佈了82 篇原創文章 · 獲贊 40 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章