1. 程式人生 > >Qt學習筆記——限制輸入框中的可輸入內容

Qt學習筆記——限制輸入框中的可輸入內容

使用正則表示式 QRegExp

單行輸入框        QLineEdit

限制內容只可輸入10個數字

正則表示式內容: [0-9]{1,10}

限制內容只可輸入10個字母或數字

正則表示式內容: [A-Za-z0-9]{1,10}

限制內容第一個字元必須是字母

正則表示式內容:[A-Z](.){1,10}    此處第一個內容後可輸入除換行符之外的所有字元,漢字也可輸入,按一個單位計算

例子

實現一個只接受11個字母或數字的單行輸入框,輸入框內容合法就使一個Button可用

程式碼

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QRegExp regExp("[A-Za-z0-9]{1,11}");
    //設定正則表示式,可接受字母,數字型別的資料,但不超過11個

    ui->lineEdit->setValidator(new QRegExpValidator(regExp, this));
    //為輸入框設定驗證,限制可輸入的內容(正則表示式regExp

    ui->okButton->setEnabled(false);

    connect(ui->cancelButton, SIGNAL(clicked(bool)), this, SLOT(close()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_lineEdit_textChanged(const QString &)
{
    ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}

執行效果