使用Val和GTK3在屏幕更新之间插入延迟

时间:2012-07-12 17:20:53

标签: vala gtk3

我正在Linux(Ubuntu 12.04)环境中学习Vala和GTK3。为此,我写了一个生命游戏模拟。到现在为止还挺好。我想做的是在每次屏幕更新之间插入延迟(比如2秒)。我已经研究了Glib.TimeoutSource函数,它似乎过于精细化了我的需求。还有其他选择吗?如果TimeoutSource确实是要走的路,那么您可能会推荐任何示例。 谢谢。

麦克

更新:事实证明这很容易......

public void onRunButtonClicked(Button source)
{
  Timeout.add_seconds(3, updateDraw);
}

private bool updateDraw()
{
  game.determineBirthsAndDeaths();
  game.applyBirthsAndDeaths();
  queue_draw();
  iterationsLabel.set_text("Iteration: %5d".printf(game.getIterationCount()));      
  return true;
}

第一种方法设置计时器。第二个每三秒执行一次(在本例中)。现在我必须添加一个停止按钮,并在按下停止按钮时让我的updateDraw方法返回false。更多要学习......

1 个答案:

答案 0 :(得分:0)

public void onRunButtonClicked(Button source)
{
  Timeout.add_seconds(3, updateDraw);
}

private bool updateDraw()
{
  game.determineBirthsAndDeaths();
  game.applyBirthsAndDeaths();
  queue_draw();
  iterationsLabel.set_text("Iteration: %5d".printf(game.getIterationCount()));      
  return true;
}