在this question的答案的最后两行做Gtk::Main::iteration()
有什么意义?我正在使用pygtk,所以同样的问题是,为什么gtk.main_iteration_do()
?是不是正在运行的主循环已经在处理这个?
答案 0 :(得分:3)
当我写下这个答案时,我假设这些项目将在一个长循环中添加 - 例如在某个回调中。除非您在单独的线程中明确地执行工作,否则主循环实际上不会在该代码期间运行。那里的代码告诉窗口滚动到底部,但滚动只在主循环重新获得控制时才会发生。
“在事件挂起时,使用任何语言进行主要交互”是经常使用的方式来运行主循环,直到所有等待的GUI更新都被处理完毕。
答案 1 :(得分:2)
这些函数的存在是为了让你创建自己的循环,并在其中的某个地方运行GTK循环的迭代。
在循环运行时,您可能需要在与循环相同的线程/进程中处理其他内容。许多带有主循环的库提供了一种在主循环中调度任务的方法,或者是为了嵌入其他地方而运行循环的单次迭代的函数。