【发布时间】:2011-09-05 14:51:37
【问题描述】:
我正在写类似 gtk_window_move(w, 0, 0);睡眠(5);但窗口位置仅在“睡眠”调用后发生变化。我想知道,您是否可以帮助我使此代码正常工作。顺便说一句,我使用 gtk_signal_connect。
【问题讨论】:
我正在写类似 gtk_window_move(w, 0, 0);睡眠(5);但窗口位置仅在“睡眠”调用后发生变化。我想知道,您是否可以帮助我使此代码正常工作。顺便说一句,我使用 gtk_signal_connect。
【问题讨论】:
您必须调用gdk_flush 函数才能将命令实际发送到服务器。请注意,这只是因为您不应该使用 sleep 调用(在此期间应用程序变得无响应);如果你使用g_timeout_add,gdk 会自动刷新 X 命令队列。
关于使小部件可见:这是一个需要程序和服务器之间双向通信的操作,基本上,服务器要求客户端绘制窗口,客户端响应绘制它的命令。在 Gtk 中,这意味着您必须让主循环运行。要么:
gtk_timeout_add 设置休眠超时,并在回调中完成其余工作gtk_main 运行嵌套主循环(使用gtk_main_quit 从它返回,可能来自超时回调gtk_main_iteration 运行循环迭代。这是最没有希望的方法,因为它很难与睡眠结合起来。【讨论】: