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

时间:2015-05-07 12:41:52

标签: c++ qt scene

我有一个棋盘游戏,我想通过允许玩家改变一些选项来初始化,比如他想要游戏板的宽度以及将参与多少玩家。我基本上都设置了实际游戏,但我需要在显示实际游戏场景之前显示初始场景(设置值,可能是两个滑块)。而且我只想在用户点击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..?

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

1 个答案:

答案 0 :(得分:1)

首先,创建主设计器表单类(让它命名为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();
}

在main函数中创建一个设置表单:

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