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