qt - 在哪里控制 QWizard 按钮?

标签 qt qt4 wizard qt4.6

我正在使用 Qt,并且使用包含多个页面的 QWizard 对象。 当涉及到特定页面时,我想先隐藏“下一步”按钮,并在用户执行某些操作(例如单击单选按钮...)后显示它

当这个特定页面出现时,我想对向导进行一些自定义控制。 问题是,我知道如何隐藏按钮,但我不知道应该使用哪个功能。 我尝试了 QWizardPage 构造函数、initializePage 函数、“show”函数,但所有这些函数都不起作用。

如果我将按钮控件放在向导页面构造函数中,程序将崩溃,因为向导对象还不存在。

如果我把它放在initializePage函数中,一些QWizard函数会在initializePage函数之后重置按钮,并且所有自定义设置都会消失。

并且 show 函数似乎无法被覆盖。

我真的不知道哪个功能可用。 MFC中是否有OnSetActive或JAVA中的Load之类的函数? 当页面要显示时会调用哪个?

最佳答案

最好的解决方案可能是使用 QWizardPage::registerField 提供的解决方案。它允许您定义必填字段/单选按钮/等。仅当填写/选中所有必填字段后,向导中的“下一步”和/或“完成”按钮才会启用。

参见http://doc.trolltech.com/4.6/dialogs-licensewizard.html有关使用此功能的示例。

编辑:QWizard::button提供对向导中按钮的访问。您是否尝试过类似 myWizard->button(QWizard::NextButton)->setEnabled(false)

关于qt - 在哪里控制 QWizard 按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401484/

相关文章:

c++ - 以高分辨率渲染 QChartView

python - pyqt:将信号与用户提供的变量动态连接?

c++ - 使用 Qt Designer 将 QMainWindow 的角设置为属于停靠小部件区域 (QMainWindow::setCorner)

c++ - 在 QMainWindow 中显示 QGridLayout

python - 如何在 Odoo10 的 sale.order.line 中传递向导字段 ID

python - Odoo 向导 : How to populate with active fields from parent view

c++ - VS2008 C++ lib项目属性设置问题

c++ - QThread 总是留下一个线程

c++ - 使用 qmake 查找编译器供应商/版本

c++ - QtScript 和线程