gtk:为什么要进行 Gtk::Main::Iteration?

发布于 2024-09-27 15:18:11 字数 247 浏览 3 评论 0原文

这个问题?我正在使用 pygtk,所以等效的问题是,为什么要使用 gtk.main_iteration_do()?正在运行的主循环不是已经在处理这个问题了吗?

What's the point of doing the Gtk::Main::iteration() on the last two lines of the answer to this question? I'm using pygtk, so the equivalent question would be, why do gtk.main_iteration_do()? Isn't the main loop that's running already taking care of this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪#恶を代价 2024-10-04 15:18:11

当我写下这个答案时,我假设这些项目将被添加到一个长循环中 - 例如在某个回调中。除非您明确地在单独的线程中执行该工作,否则主循环实际上不会在该代码期间运行。那里的代码告诉窗口滚动到底部,但滚动实际上只有在主循环重新获得控制时才会发生。

无论使用哪种语言,“当事件待处理时,进行主交互”都是运行主循环直到处理完所有等待的 GUI 更新的常用方法。

When I wrote that answer, I was assuming that the items would be added in a long loop - for example in a callback somewhere. Unless you're explicitly doing the work in a separate thread, then the main loop is in fact not running during that code. The code there tells the window to scroll to the bottom, but the scrolling only actually happens when the main loop regains control.

"While events pending, do main interation" in whatever language is an often-used way to run the main loop until all waiting GUI updates have been processed.

感性不性感 2024-10-04 15:18:11

这些函数的存在是为了让您创建自己的循环,并在其中的某个位置运行 GTK 循环的迭代。

您可能希望在循环运行时在与循环相同的线程/进程中处理其他事情。许多具有主循环的库都提供了一种在主循环中安排任务的方法,或者提供了一个函数来运行循环的单次迭代,以便您嵌入其他地方。

These functions exist to let you create your own loop, and have an iteration of GTK's loop run somewhere in it.

You may want to take care of other stuff while the loop runs, in the same thread/process as the loop. Many libraries with main loops provide either a way to schedule tasks in their main loop, or a function to run a single iteration of the loop for you embed somewhere else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文