QT在事件上显示不同的场景

Qt displaying different scenes on events

本文关键字:显示 事件 QT      更新时间:2023-10-16

我有一个棋盘游戏,我想通过允许玩家更改一些选项,例如他希望游戏板的范围以及有多少玩家参加。我的实际游戏基本上都是设置的,但是在显示实际的游戏场景之前,我需要显示Intial场景(可能设置值,两个滑块)。我想仅在用户单击GO按钮时显示游戏场景。

我尝试从这样的算法中抽象出来:

scene = new QGraphicsScene();
// setting up the scene, adding items like sliders and buttons
show();
// now I want to wait for a clickButton event and....
scene2 = new QGraphicsScene(); // etc..?

这可行吗?谢谢您的时间和耐心。

首先,创建主设计器表单类(让我们命名为 GameForm),然后向其添加图形视图。为每个可配置的选项添加构造函数参数。在构造函数中,您应该设置一个考虑指定参数的场景。

创建另一个设计器表单类(让我们命名SettingsForm),然后用所需的滑块和GO按钮填充它。在按钮的单击插槽中,编写以下代码:

void SettingsForm::on_go_clicked() {
  int param1 = ui->slider1->value();
  int param2 = ui->slider2->value();
  hide();
  deleteLater();
  GameForm *gameForm = new GameForm(param1, param2);
  gameForm->show();
}

在主函数中创建设置表格:

SettingsForm* form = new SettingsForm();
form->show();