我查看了Qt的来源,发现可以通过创建自定义按钮布局并省略列表中的"后退"按钮来隐藏"后退"按钮:
QList<QWizard::WizardButton> button_layout;
button_layout << QWizard::HelpButton << QWizard::Stretch <<
QWizard::NextButton << QWizard::CustomButton1 <<
QWizard::CancelButton;
this->setButtonLayout(button_layout);
Run Code Online (Sandbox Code Playgroud)
我希望这会节省一些时间.
PS
AFAIU为了避免使用QTimer,需要修改QWizard源代码.easies的方法是添加虚函数virtual void buttonsUpdated(); 并从QWizard的结尾调用它:void QWizardPrivate :: _ q_updateButtonStates()然后在QWizard子类中重新实现这个buttonsUpdated()并在那里禁用Back按钮.
调用
QWizard::button(QWizard::BackButton).hide()
Run Code Online (Sandbox Code Playgroud)
在
QWizard::onCurrentIdChanged(int)
Run Code Online (Sandbox Code Playgroud)
为我工作(在PyQt4中).
这有效地在每个向导页面上再次隐藏了后退按钮,但它实现了所需的效果.
另一种(可能更面向框架)方法是将 QWizardPage 设置为提交页面,该页面位于您希望禁用后退按钮的页面之前。只需调用this.setCommitPage(true)QWizardPage,下一页就不会启用后退按钮。
void QWizardPage::setCommitPage(bool commitPage)如果 commitPage 为 true,则将此页面设置为提交页面;否则,将其设置为普通页面。提交页面是代表无法通过单击“后退”或“取消”来撤消的操作的页面。提交按钮取代了提交页面上的下一步按钮。单击此按钮只需调用 QWizard::next(),就像单击“下一步”一样。 直接从提交页面进入的页面的后退按钮被禁用。另请参见 isCommitPage()。
如果您希望禁用所有后退按钮,您可以在每个页面上调用它。
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |