QWizard里下一步按钮置灰的有关问题

QWizard里下一步按钮置灰的问题
在QWizardPage里有一个QLineEdit,我想对用户输入的字符进行判断,不合法的字符则下一步的按钮不可用。
我在网上查了,通过registerField 加"*"只能判断用户是否填写;通过重写validatePage ()函数是可以进行判断的,
但是需要按下按钮才能判断,按钮不能置灰。
所以,这样一个功能如何实现?就像Qt creator里的向导,都是可以实现。

------解决方案--------------------
就算是自己添加“下一步”,“完成”等button,也是可以的。
addPage 函数可以添加指定的QWidgt页面,然后QWizard 里也有
virtual void back ()
virtual void next ()
virtual void help ()
这3个slot,你可以将自定义页面里的button的onclick给connect到这3个slot上,也能实现对应的功能。
------解决方案--------------------
一样的
QAbstractButton * button ( WizardButton which ) const
这个函数,可以获取到你想要的button,比如:
QAbstractButton *bt = button(QWizard::NextButton);//这样就获取到next的button了
然后就可以bt->setEnable(true)显示或者setEnable(flase)置灰

------解决方案--------------------
sdk:
QAbstractButton * QWizard::button ( WizardButton which ) const
Returns the button corresponding to role which.
获取指定的button
------解决方案--------------------
简单的看了下QWizardPage,确实没有说能置灰一个按钮的方法,但是有两个歪招,可以参考下:
1.void setButtonLayout ( const QList<WizardButton> & layout )这个函数可以指定当前的页面按钮布局,
比如说你监听到text变化了,但是不希望用户点击next,那你调用setButtonLayout,里面不加入next按钮。
2.这个next按钮的点击你是可以监听到的。
void customButtonClicked ( int which )这个signal监听下就好了,然后在里面判断,此时是否允许用户执行对应功能。