c – GTK中的重复窗口失效:几个步骤后失败

c – GTK中的重复窗口失效:几个步骤后失败,第1张

概述我有一个定时器,每秒调用一个方法(perform_step). perform_step进行一些计算并使我的窗口无效.这在最初很有效,但在少量迭代之后,窗口的on_expose_event不会被触发.从调试中我发现窗口失效方法已被调用,但未输入事件处理程序. 可能导致这种情况的任何想法?以下是我发现的一些可能有用的内容: >当perform_step中的计算较短时,在较少的迭代之后事情会中断. > 我有一个定时器,每秒调用一个方法(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) {  ...}@H_403_20@解决方法 你的on_button_press_event()缺少一个return语句;确保所有处理程序都返回正确的东西.                            	          总结       

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1225815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存