ZBLOG

警告:‘gint gdk_screen_get_width_mm(GdkScreen*)’ is deprecated [-Wdeprecated-declarations] 224 | gint screen_width_mm = gdk_screen_get_width_mm(screen); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ In file included from /u...

抱歉,我之前的回答有误。根据警告信息显示,gdk_screen_get_width_mm()函数也已经被标记为过时。为了避免警告,您可以使用gdk_screen_get_width()gdk_screen_get_height()函数来获取屏幕的宽度和高度(以像素为单位)。

修改后的代码如下:

#include <gtk/gtk.h>

void move_window_to_center(GtkWidget *widget, gpointer data) {
    GtkWindow *window = GTK_WINDOW(data);

    GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(window));
    gint screen_width = gdk_screen_get_width(screen);
    gint screen_height = gdk_screen_get_height(screen);

    gint window_width, window_height;
    gtk_window_get_size(window, &window_width, &window_height);

    gint x = (screen_width - window_width) / 2;
    gint y = (screen_height - window_height) / 2;

    gtk_window_move(window, x, y);
}

int main(int argc, char *argv[]) {
    gtk_init(&argc, &argv);

    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Move Window to Center");

    GtkWidget *button = gtk_button_new_with_label("Move Window");

    g_signal_connect(button, "clicked", G_CALLBACK(move_window_to_center), window);

    GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);

    gtk_container_add(GTK_CONTAINER(box), button);

    gtk_container_add(GTK_CONTAINER(window), box);

    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    gtk_widget_show_all(window);

    gtk_main();

    return 0;
}

这样修改后的代码将使用gdk_screen_get_width()gdk_screen_get_height()函数获取屏幕的宽度和高度,以像素为单位。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10975

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?