【问题标题】:Inserting a delay between screen updates using Val and GTK3使用 Val 和 GTK3 在屏幕更新之间插入延迟
【发布时间】:2012-07-12 17:20:52
【问题描述】:

我正在 Linux (Ubuntu 12.04) 环境中学习 Vala 和 GTK3。为此,我编写了一个 Game of Life 模拟。到目前为止,一切都很好。我想做的是在每次屏幕更新之间插入一个延迟(比如 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。了解更多...

【问题讨论】:

  • 我认为您应该自己编写并接受答案,以便人们知道您的问题已解决。

标签: vala gtk3


【解决方案1】:
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;
}

【讨论】:

    猜你喜欢
    • 2020-12-12
    • 2015-12-04
    • 2017-10-25
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多