使用GTK+获取屏幕分辨率并设置满屏显示效果

在linux下,经常需要设置程序全屏显示,GTK+中提供了获取屏幕分辨率的方式,然后只要根据得到的宽高设置窗口显示大小,同时使用gtk_window_set_decorated去掉边框和标题栏显示,就能实现相应的效果了。

下面程序,就是简单的给出了窗口满屏效果是如何实现的,为保证程序的正常退出,添加了键盘事件,按下Esc键,程序退出。

/*

 * Name: full_screen.c

 */

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkkeysyms.h>
/* the key value defines can be found here */
#include <stdio.h>

static void
on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
    switch(event->keyval)
    {
        case GDK_Escape:
            gtk_main_quit();
            break;
        default:
            break;
    }
}
int main(int argc, char *argv[])
{
    gtk_init(&argc, &argv);

    /* Get the Screen Resolution */
    GdkScreen* screen;
    gint width, height;
    screen = gdk_screen_get_default();
    width = gdk_screen_get_width(screen);
    height = gdk_screen_get_height(screen);
    printf("screen width: %d, height: %d\n", width, height);

    /* Create window and set full screen */
    GtkWidget *window;
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window), width, height);
    gtk_window_set_decorated(GTK_WINDOW(window), FALSE); /* hide the title bar and the boder */

    gtk_widget_show (window);

    /* add key event for quit */
    g_signal_connect(G_OBJECT(window), \
            "key-press-event", \
            G_CALLBACK(on_key_press), NULL);

    gtk_main();

    return 0;
}


编译执行程序

$ gcc -g `pkg-config --cflags --libs gtk+-2.0` -o full_screen full_screen.c

$ ./full_screen

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(81) | 评论(0) | 转发(0) |
0

上一篇:PKG CONFIG

下一篇:ATP-GET常用操作

给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kelsel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值