如何用Gtk获取屏幕尺寸?

T. *_*ros 8 c gtk user-interface

我正在尝试使用 C Gtk 程序获取显示器的大小。

我看到了这个版本,但自 Gtk 3.22 以来这些函数已被弃用:

gint width  = gdk_screen_width();
gint height = gdk_screen_height();
Run Code Online (Sandbox Code Playgroud)

在 GdkScreen 文档中,我只找到:“使用每个监视器信息”。

我尝试在 GdkMonitor 或 GdkDisplay 文档中查找有关此内容的任何信息,但没有成功。

唯一类似的功能是:

int gdk_monitor_get_width_mm (GdkMonitor *monitor);
Run Code Online (Sandbox Code Playgroud)

但这不是我要找的。

有人知道我如何获得这些信息吗?

小智 5

然而,我必须计算出每个显示器的宽高比 - Gtk+ Functions Depreciate So Fast:但最终得到的是:

GdkRectangle workarea = {0};
gdk_monitor_get_workarea(
    gdk_display_get_primary_monitor(gdk_display_get_default()),
    &workarea);

printf ("W: %u x H:%u\n", workarea.width, workarea.height);
Run Code Online (Sandbox Code Playgroud)