概述
QWizard下一步按钮的控制
QWizard是Qt的向导类,在向导过程中,可以通过函数registerField注册字段实现全局访问,而且可以通过4种方法来控制下一步或者完成按钮的可用性:
第一种方法,isComplete函数,其应用于QWizardPage,可控制单个向导页面的“下一步”或者“完成”按钮的可用性,函数如下:
1 | bool QWizardPage::isComplete () const [ virtual ] |
下面是isComplete的实现,源码来源于
http://doc.qt.nokia.com/qq/qq22-qwizard.html#validatebeforeitstoolate
首先重新实现QWizardPage::isComplete()函数
1 | bool SailingPage::isComplete() const |
2 | { |
3 | return field( "sailing" ).toDate().dayOfWeek() |
4 | != Qt::Sunday; |
5 | } |
连接输入框或者其他需要监视的对象的信号与QWizardPage::completeChanged ()信号。
1 | connect(sailing, SIGNAL(selectionChanged()), this , SIGNAL(completeChanged())); |
当然也可以自己执行QWizardPage::completeChanged ()信号,即自行编写完成检查函数后执行信号:
1 | emit completeChanged() |
第二种方法,hasAcceptableInput函数,用于QLineEdit,如果hasAcceptableInput为false,则按钮会变灰。
1 | bool hasAcceptableInput () const |
第三种方法,registerField函数,第一个参数name后加星号,例如field*,就可以保证如果此区域不填写,下一步按钮将始处于灰色状态。
1 | void QWizardPage::registerField ( const QString & name, QWidget * widget, const char * property = 0, const char * changedSignal = 0) |
第四种方法,重新实现bool QWizardPage::validatePage ()函数,其能在点击下一步或者完成按钮时完成函数所定义的功能,当然就包括验证这一类的东西了。
最后
以上就是受伤大树为你收集整理的QWizard下一步按钮的控制的全部内容,希望文章能够帮你解决QWizard下一步按钮的控制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复