下文主要討論當(dāng)使用QWizard時(shí)澈缺,需要驗(yàn)證當(dāng)前向?qū)ы撍斎雰?nèi)容伐厌,如果不符合要求旗国,則設(shè)置下一步按鈕為不可用。
具體實(shí)現(xiàn)如下:
1.首先在firstWidget構(gòu)造函數(shù)中利用正則表達(dá)式對(duì)要輸入的文本框進(jìn)行限制:
//構(gòu)造正則表達(dá)式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的構(gòu)造函數(shù)中獲取上面設(shè)置的QLineEdit蜕琴,并注冊(cè):
m_pFirstWidget = new firstWidget(this);
QLineEdit * pLineEdit = m_pFirstWidget->findChild("test_lineEdit");
//注冊(cè)萍桌,其中num后加*號(hào)表示必填,正確輸入后凌简,才能下一步
registerField("num*", pLineEdit);
3.最終完成時(shí)讀取數(shù)據(jù)則用如下方法:
m_Num = field("num").toString();