微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在X11子窗口中获取事件?

我需要在X11子窗口中处理事件(MouseDown,MouseUp,MouseMove,KeyDown,KeyUp)。 这个孩子的X11窗口的父 – GtkWidget,所以我不能创build主循环…

我怎样才能做到这一点?

谢谢!

每次触发Form.Load事件

如何判断Win32_NTLogEvent InsertionString是否存在?

将ETW事件发送到全局“应用程序”日志

在C#中拦截窗口运动

在Powershell中使用Get-EventSubscriber cmdlet

在Visual C ++ MFC中启动窗口时的事件顺序

Windows窗体线程和事件 – ListBox更新迅速,但进度条经历了巨大的延迟

在Windows上检测与Java上的Samba共享的文件系统更改

(Linux)从PID:VID连接的USB设备获取/ dev / input / eventX

检测Java应用程序中的Windows注销事件

XGrabPointer , XGrabKeyboard

如果要从gtk小部件中获取事件,可以使用g_signal_connect ()。

g_signal_connect(G_OBJECT(mChild),"button_press_event",G_CALLBACK(BPHandler),NULL); g_signal_connect(G_OBJECT(mChild),"key_press_event",G_CALLBACK(KPHandler),NULL);

那么,你需要一些事件泵,并作为一个共享的X显示器连接手段上的子窗口,这是连接到主事件循环。 从技术上讲,你可以用自己的显示连接和事件循环启动第二个线程。 不幸的是Xlib并不是非常安全的,特别是在这方面。 你可以用Xcb做。

另一种方法是把孩子置于一个单独的过程中,并使用XEmbed

XSelectInput ?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐