首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换GTK4中的自定义事件

替换GTK4中的自定义事件
EN

Stack Overflow用户
提问于 2022-10-31 09:41:29
回答 1查看 51关注 0票数 2

在GTK3中的一个项目中,我使用自定义事件在线程之间进行通信。一个线程是运行事件循环的主OS线程。另一个是执行内部应用程序特定初始化的非主线程。条件是,只有在初始化应用程序之后才能创建第一个GTK窗口。但是,由于一些与设计相关的原因,我不想延迟主线程进入事件循环。

因此,主线程在GTK初始化后立即进入事件循环,当可以创建第一个窗口时,非主线程需要插入主线程。对于这些提示,我使用的是GTK3中的自定义事件(可以创建它,但我不确定它是否被推荐)。

创建自定义事件的非主线程的代码片段如下所示-

代码语言:javascript
复制
GdkEvent *  createwinevent;

// Create and post custom event to start GTK Window creation

createwinevent = gdk_event_new ((GdkEventType) CREATE_WINDOW);               

// CREATE_WINDOW is an enum defined by the application

gdk_event_put (createwinevent);

在主线程中,我使用g_idle_timeout间歇性地检查事件队列并处理自定义事件。

然而,在GTK4中,GdkEvents是只读的。可以在GTK4中以某种方式创建定制事件吗?如果没有,我是否可以在GTK4中使用其他机制在线程之间传递消息?

阅读GTK4材料无法找到任何支持自定义事件的东西。

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 11:37:04

阅读从Gtk 3.x迁移到GTK4 (API变化部分):

在GTK 4中不再可能直接访问GdkEvent结构。GdkEvent现在是一种严格的只读类型,您不能再更改它的任何字段、或构造新事件。所有事件字段都有您必须使用的访问器。

因此,它认为在GTK4中您所做的不再可能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74261368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档