Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何使用Gtk获得屏幕的大小?_C_User Interface_Gtk - Fatal编程技术网

C 如何使用Gtk获得屏幕的大小?

C 如何使用Gtk获得屏幕的大小?,c,user-interface,gtk,C,User Interface,Gtk,我正试图用一个C Gtk程序获得显示器的尺寸 我看到了这个版本,但这些函数在Gtk 3.22之后被弃用: gint width = gdk_screen_width(); gint height = gdk_screen_height(); 在GdkScreen文档中,我只找到了:“使用每个监视器的信息” 我试图在GdkMonitor或GdkDisplay文档中找到有关这方面的任何信息,但没有成功 唯一类似的功能是: int gdk_monitor_get_width_mm (GdkMoni

我正试图用一个C Gtk程序获得显示器的尺寸

我看到了这个版本,但这些函数在Gtk 3.22之后被弃用:

gint width  = gdk_screen_width();
gint height = gdk_screen_height();
在GdkScreen文档中,我只找到了:“使用每个监视器的信息”

我试图在GdkMonitor或GdkDisplay文档中找到有关这方面的任何信息,但没有成功

唯一类似的功能是:

int gdk_monitor_get_width_mm (GdkMonitor *monitor);
但这不是我想要的


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

我必须计算出每个监视器的纵横比,但是- Gtk+功能贬值如此之快:但结果是:

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);

gdk_monitor\u get_geometry()
gdk_monitor\u get_workarea()
是否有问题?我是否应该这样做:
display=gdk_display\u get_default();监视器=gdk\u显示\u获取\u监视器(显示,0);gdk_监视器_获取_几何体(监视器和r)这样做会在r变量中返回0,0。您可以使用其他API中的函数来获取屏幕大小(如Windows上的
GetSystemMetrics
)。您希望通过Gtk?@T.Gros中的函数来实现这一点,看起来还可以。你能展示给你“0,0”的实际代码吗?@jku好吧,我只是个白痴。我打印的是x和y值,而不是宽度和高度,用于GtkRectangle…非常感谢您的回答!我刚刚开始在《朱莉娅》中使用Gtk,但我已经把这一部弄出来了。如果有看不见的错误,请发表评论。我不认识朱莉娅,但最后一个paren应该关闭吗?
using Gtk
win = GtkWindow()
maximize(win)
sleep(0.1)
window = GtkWindow("Title", width(win), height(win))
destroy(win)
maximize(window)

screen size : width(win), height(win