zoukankan      html  css  js  c++  java
  • GTK编程:如何准确获知当前widget的size?

    1. 用gtk_widget_get_request_size/gtk_widget_size_request取出来的都是当初request的size,不是widget当前的size

    2. 使用gdk_drawable_get_size函数可以取出当前widget的size。注意,gdk_window_get_size函数有一样的效果,不过这个函数已经deprecated了。

    还有一点,这个widget必须有window,像label, progressbar这些widget,他们是没有GdkWindow的(在Foundations of GTK+书中有描述,所以,像这样的widget如果要捕捉事件的话,要在他们下面套一个EventBox),虽然有window这个成员变量 (window这个成员变量定义在GtkWidget中,所以他们都有),但是他们的window这个成员变量,其实是他们的parent的window 变量(参看GtkWidget class手册中该成员变量的描述)。

    OK,给出一段example代码,这段代码是一个eventbox,上面放了一个progressbar,取的是eventbox的size,其实也就是progressbar的size:

    // Get the size of eventbox
    gint width, height;
    gdk_drawable_get_size(GDK_DRAWABLE(eventbox->window), &width, &height);
  • 相关阅读:
    多线程(6)线程属性
    多线程(五) Thread和Object中线程相关方法
    面试汇总
    多线程(4)线程生命周期
    多线程(3) 多线程之线程的停止和中断
    springboot(6)redis缓存
    软件安装(总)
    redis分布式锁
    第一天
    Thinkphp5高级进阶教程
  • 原文地址:https://www.cnblogs.com/super119/p/2005639.html
Copyright © 2011-2022 走看看