下文主要討論當使用QWizard時,需要驗證當前向導頁所輸入內容,如果不符合要求,則設置下一步按鈕為不可用。
具體實現如下:
1.首先在firstWidget構造函數中利用正則表達式對要輸入的文本框進行限制:
//構造正則表達式QRegExp regexp("[1-9][0-9]*$");
QRegExpValidator * pValidator = new QRegExpValidator(this);
pValidator->setRegExp(regexp);
ui->m_pLineEdit->setObjectName("test_lineEdit")ui->m_pLineEdit->setValidator(pValidator);
2.在重寫的WizardPage的構造函數中獲取上面設置的QLineEdit,并注冊:
m_pFirstWidget = new firstWidget(this);
QLineEdit * pLineEdit = m_pFirstWidget->findChild("test_lineEdit");
//注冊,其中num后加*號表示必填,正確輸入后,才能下一步
registerField("num*", pLineEdit);
3.最終完成時讀取數據則用如下方法:
m_Num = field("num").toString();