gpt4 book ai didi

c++ - Q向导 : Confirmation on back button

转载 作者:搜寻专家 更新时间:2023-10-31 02:10:35 26 4
gpt4 key购买 nike

我通过子类化 QWizard 创建了一个向导,我通过子类化 QWizardPage 创建了我的向导页面。

我想在用户按下后退 按钮时显示一个确认对话框,并且我希望我的向导在用户按下 时不转到上一页在确认对话框上。

当单击 QWizard 对话框上的Next 时,虚函数 bool validatePage() 被调用,如果我们不想转到下一个,则允许返回 false页面(例如,当字段不完整时)。

但是,当按下返回时,我不知道怎么说“不要返回”。调用了虚函数void cleanupPage()(我可以在这里询问用户确认),但是向导无论如何都会返回。

有可能吗?

提前致谢。

最佳答案

通过断开后退按钮信号并将其连接到我的自定义插槽,我终于实现了我想要的(不确定这是最好的方法......)。

MyWizard::MyWizard(QWidget *parent) : QWizard(parent)
{
// [...]
connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(onPageChanged(int)));
}

void MyWizard::onPageChanged(int id)
{
disconnect(button(BackButton), SIGNAL(clicked(bool)), 0, 0);
connect(button(BackButton), SIGNAL(clicked(bool)), this, SLOT(onBackButtonClicked()));
}

void MyWizard::onBackButtonClicked()
{
if (currentId() > Page_Intro && !confirmation(tr("Are you sure you want to go back?")))
return;
back();
}

注意,如果你在Wizard构造器上做连接/断开,它不起作用(Qt在你通过第一页时连接它)。

关于c++ - Q向导 : Confirmation on back button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44970801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com