如何在 Gtkmm4

问题描述

我使用的是 Gtkmm4,许多 API 已被删除。在 Gtk3 中可以使用 Gtk::Window::get_xid(从 Gdk::Window 继承),但这不再可能了,因为 Gdk::Window 已重命名为 Gdk::Surface,而 Gtk::Window 似乎不再继承它。但是,始终可以使用 Gdk::Surface 获得 GDK_SURFACE_XID(surface) 的 XId。如何获取 Gdk::SurfaceGtk::Window,或者直接从 Gtk::Window 获取 XId?
注意:我只需要使用 Gtkmm 4 的解决方案,而不是 Gtkmm 3 !

解决方法

处理底层表面的代码被拆分成一个单独的接口 Gtk::Native,然后 Gtk::Window 实现。 Gtk::Native 有一个方法 get_surface(),它应该像 Gtk::Window::get_window() 在 GTK 3 中那样工作。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...