C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – GTK中的重复窗口失效:几个步骤后失败大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个定时器,每秒调用一个方法(perform_step). perform_step进行一些计算并使我的窗口无效.这在最初很有效,但在少量迭代之后,窗口的on_expose_event不会被触发.从调试中我发现窗口失效方法已被调用,但未输入事件处理程序.

可能导致这种情况的任何想法?以下是我发现的一些可能有用的内容

>当perform_step中的计算较短时,在较少的迭代之后事情会中断.
>事情在每次迭代次数相同后都会崩溃.
>将鼠标移到窗口上可以防止故障发生.如果我不断地将鼠标移到窗口上,事情就会永远存在.它似乎“重置”了柜台.如果在10次迭代之后事情会崩溃并且在第9次迭代时我将鼠标移到窗口上,那么事情就会在第19次迭代时分解.

这是一段代码

bool SimDisplay::on_button_press_event(GdkEventButton* event) {
  Glib::signal_timeout().connect( sigc::mem_fun(*this,&SimDisplay::perform_step),1000 );
}

bool SimDisplay::perform_step() {
  world->step();
  //on the last iteration this is called but on_expose_event is never reached
  get_window()->invalidate(true);
}

bool SimDisplay::on_expose_event(GdkEventExpose* event) {
  ...
}

解决方法

你的on_button_press_event()缺少一个return语句;确保所有处理程序都返回正确的东西.

大佬总结

以上是大佬教程为你收集整理的c – GTK中的重复窗口失效:几个步骤后失败全部内容,希望文章能够帮你解决c – GTK中的重复窗口失效:几个步骤后失败所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: