组合程序

发布于 2022-08-10 08:11:59 字数 53 浏览 17 评论 2

我已经写好两个简单的gtk程序,现在想把它们组合起来顺序执行(第一个执行完后,执行第二个),请问如何操作?

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

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

发布评论

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

评论(2

走野 2022-08-12 07:41:49

你可以吧两个程序的代码整合到一个中嘛,
比如第一程序执行完就开始地二个程序的第一个窗口!

孤芳又自赏 2022-08-11 11:32:53

这个吗?
GTK+的事件与信号处理

GTK是一个事件驱动的工具集,一个GTK应用通常在gtk_main上休眠直到一个事件发生,这时控制被传递给合适的函数。

信号绑定

gint gtk_signal_connect( GtkObject *object,
                         gchar *name,
                         GtkSignalFunc func,
                         gpointer func_data );

void gtk_signal_disconnect( GtkObject *object,
                            gint id );

void gtk_signal_handler_block( GtkObject *object,
                               guint      handler_id );
                              
                              
void gtk_signal_handler_unblock( GtkObject *object,
                                 guint      handler_id );

信号被处理的过程

信号发出

    * 信号发出(signal emission)特指GTK为一个特定的对象和一个特定的信号执行所有的处理程序的过程;

    * 绑定在一个信号上的所有处理程序的执行顺序与它们被设置的次序一致;

    * 一次信号发出的返回值是最后一个被执行的处理程序的返回值;

    * 由于所有的事件信号都是GTK_RUN_LAST类型,因此它将是最后执行的缺省处理程序,除非你使用gtk_signal_connect_after();

信号传播

    * 从事件发生的那个控件开始;

    * 发出一个普通的事件“event”。如果它的信号处理程序返回TRUE,则停止一切处理;

    * 否则,发出一个特定的"button_press_event"信号。如果返回TRUE,则停止处理;

    * 否则,将控制转移到这个控件的父亲那里,继续上面的两步;

    * 持续进行,直到某个处理程序返回TRUE,和到达顶级控件。

注意事项

1. 当有一个缺省处理程序时,您的处理程序的返回值可能不产生任何作用,除非您使用gtk_signal_connect_after()来绑定它;

2. 为阻止缺省处理程序执行,您需要:

    * 用gtk_signal_connect()来绑定;

    * 用gtk_signal_emit_stop_by_name()来停止信号继续传播。

3. 当GTK+不够用时,可以考虑使用GDK等库。

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