QT笔记- QWizard如何设置next、finish、back等按钮?

函数

通过QWizard类的一个枚举类型三个函数可以实现设置这些按钮:

  • enum QWizard::WizardButton
  • QAbstractButton * QWizard::button(WizardButton which) const
  • void QWizard::setButton(WizardButton which, QAbstractButton * button)
  • void QWizard::setButtonText(WizardButton which, const QString & text)

释义

  1. 枚举类型WizardButton用于指任按钮。
  2. button()返回指定按钮的指针,通过该指针可以像设置任意widget部件一样设置该按钮,如设置隐藏、灰色不可用等等。注意该函数对部分按钮无效,如"next"按钮无法通过该函数设置不可用或隐藏,因为这些功能的设置由另外的机制来完成,后面会说明。
  3. setButton()可以将指定的按钮替换成自己另创建的一个按钮对象。显然,该方法可以将按钮替换成以QAbstractButton为基类的任意按钮类型,同时通过该方法也可以完成button()方法不可达成的任务: 重写按钮虚函数。
  4. setButtonText()可更改按钮上的文本

next、finish可用与不可用(灰色)的处理机制

这两个按钮,对于其可用或不可用,Qt有一个联合了类Wizard和类QWizardPage的处理机制,无法绕过这个机制而进行单独设置其可用性。

机制:类Wizard在窗口初始绘制或接收到void completeChanged()信号时,会自动调用虚函数bool isComplete(),然后根据isComplete()函数的返回值来决定将按钮next或finish设置为可用或不可用状态。

这个信号函数和虚函数均被定义在QWizardPage类中,基于上面描述的机制,我们可以在QWizardPage类的派生类中重写虚函数,来构建一个条件判断方法(即何时返回true何时返回false),并在该派生类合适的位置发射emit completeChanged()信号,就可轻松实现对按钮next或finish可用状态的控制。

如下是一个QWizardPage派生类实现代码部分截图,其中红色框选部分是上述虚函数和信号的应用方法:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值