Multithreading GTK&x2B;收集

Multithreading GTK&x2B;收集,multithreading,gtk,gtkmm,Multithreading,Gtk,Gtkmm,我正在用gtkmm/C++为我正在进行的一个项目开发一个UI。我对GTK完全陌生。对于这个程序,我需要多线程,为此我使用Glib::Threads对象。第二个线程将被打开和关闭,以便用户可以控制程序的执行;当然,Gtk::Togglection这个名字让我很好奇,但我一直无法找到它真正的用途。是否有可能从处理线程的TogleAction派生一个类 谢谢! ChrisGtk::TogleAction是用于“基于动作的菜单和工具栏”的类集合的一部分: 特别是,GtkToggleAction表示具有可

我正在用gtkmm/C++为我正在进行的一个项目开发一个UI。我对GTK完全陌生。对于这个程序,我需要多线程,为此我使用Glib::Threads对象。第二个线程将被打开和关闭,以便用户可以控制程序的执行;当然,Gtk::Togglection这个名字让我很好奇,但我一直无法找到它真正的用途。是否有可能从处理线程的TogleAction派生一个类

谢谢!
Chris

Gtk::TogleAction是用于“基于动作的菜单和工具栏”的类集合的一部分:


特别是,GtkToggleAction表示具有可切换开/关状态的操作。这更多的是抽象“动作”的概念,它可以由任意数量的UI元素(菜单检查项、切换按钮等)同时可视化。当然,您可以使用Gtk::TogleAction更改触发的事件来决定暂停/取消暂停线程,方法是将Gtk::TogleAction子类化,或者使用引用Gtk::TogleAction实例的新类进行合成。

Gtk::TogleAction是用于“基于动作的菜单和工具栏”的类集合的一部分:


特别是,GtkToggleAction表示具有可切换开/关状态的操作。这更多的是抽象“动作”的概念,它可以由任意数量的UI元素(菜单检查项、切换按钮等)同时可视化。当然,您可以使用Gtk::ToggleAction更改触发的事件来决定暂停/取消暂停线程,方法是将Gtk::ToggleAction子类化,或者使用引用Gtk::ToggleAction实例的新类进行合成。

Gtk像所有其他UI系统一样,对其非阻塞UI使用事件驱动体系结构。实现这一点的标准方法是有一个主线程用于事件处理,另一个线程用于绘制。大多数窗口(如“另存为”对话框)都是以不同的方式处理的,因此不需要为此使用线程。 如果你正在开发一个新的应用程序,那么考虑使用GTK3接口。GTK操作已被弃用。改用GAction和GMenu接口


与所有其他UI系统一样,GTK为其非阻塞UI使用事件驱动架构。实现这一点的标准方法是有一个主线程用于事件处理,另一个线程用于绘制。大多数窗口(如“另存为”对话框)都是以不同的方式处理的,因此不需要为此使用线程。 如果你正在开发一个新的应用程序,那么考虑使用GTK3接口。GTK操作已被弃用。改用GAction和GMenu接口


或者,您可以在Advanced Gtk+Sequencer的gobject中使用我的线程实现:

此实现提供挂起和恢复线程。 当然,您可以扩展GtkToggleButton对象

这可能是最重要的功能

g_type_class_peek_parent(klass);

或者,您可以在Advanced Gtk+Sequencer的gobject中使用我的线程实现:

此实现提供挂起和恢复线程。 当然,您可以扩展GtkToggleButton对象

这可能是最重要的功能

g_type_class_peek_parent(klass);

目前我正在使用Gtk::ToggleButton;我相信这对我的目的同样好。假设我这个程序员将在UI驱动的程序中处理多线程,这公平吗?谢谢你的回复。如果你想设计一个响应性强的UI,那么在这种或那种形式下,你需要学会在不阻塞UI线程的情况下做事。对于后台线程,异步API,你有什么。我已经在使用pthreads开发一个解决方案。它正好适合我的需要;我从来没有写过GUI,我不确定GTK是否有能力处理这些简单的多线程场景。谢谢你的回复,我现在知道我需要自己处理它;我相信这对我的目的同样好。假设我这个程序员将在UI驱动的程序中处理多线程,这公平吗?谢谢你的回复。如果你想设计一个响应性强的UI,那么在这种或那种形式下,你需要学会在不阻塞UI线程的情况下做事。对于后台线程,异步API,你有什么。我已经在使用pthreads开发一个解决方案。它正好适合我的需要;我从来没有写过GUI,我不确定GTK是否有能力处理这些简单的多线程场景。谢谢你的回复,我现在知道我需要自己处理。