Qt Gui 中的两个按钮

Two Buttons in Qt Gui

我用Qt写了一个具有不同功能的程序。现在我想做一个Gui。例如我有两个按钮,button1 和 button2。我打开应用程序,首先看到 button1。然后我单击 button1,它执行其功能(如 "start")并消失。然后 button2 应该出现,当我单击 button2 时它执行其功能(如 "stop")并消失并且 button1 再次出现以被单击以执行开始。 我现在的问题是,如何以简单的方式解决这个问题?

void gui::on_pushButton_clicked() 
{
    //execute start, switch to be button2
}

void gui::on_pushButton_2_clicked() 
{
     //execute stop, switch to be button 1
}

以下似乎是最简单的解决方案,但如果您想添加更多按钮,则有点麻烦。在这种情况下,您可能需要考虑将它们存储在列表中并迭代列表。

void gui::on_pushButton_clicked() 
{
    //execute start, switch to be button2

    ui->pushButton->hide();
    ui->pushButton_2->show();
} 

void gui::on_pushButton_2_clicked() 
{
     //execute stop, switch to be button 1

    ui->pushButton->show();
    ui->pushButton_2->hide();
}

如果您进一步决定实施更多逻辑,您应该考虑使用 QStateMachine 并在进入或退出某些状态时将某些按钮设置为可见或隐藏。