zoukankan      html  css  js  c++  java
  • gtk_widget_realize函数的作用

    gtk_widget_realize这个函数是用来创建该widget对应的GdkWindow和相关资源的。一般我们用不到这个函数,一般是在创建自定义的widget的时候,需要用到。

    我们一般不需要使用这个函数的原因是:当我们调用gtk_widget_show_all函数的时候,就会自动调用这个函数。但是 Foundations of GTK+ Developing一书中提到,对于GtkEventBox,_show_all函数并不会调用realize,所以我们需要手动调用一次这个函数。而 且,调用这个函数之前,需要首先调用gtk_container_add这样类似的函数,这是因为GTK要确定eventbox要知道他的parent和 ancestor是谁。

    这次写RTSP Player demo程序的时候,eventbox不是add到Top level的GtkWindow的,而是add到了一个GtkVBox中,用的是gtk_box_pack_start函数,我发现在调用了 gtk_box_pack_start之后,调用gtk_widget_realize在运行时会发生一个断言错误。去掉这句代码就好了,而且看起来也没 有什么问题。这样看来,是不是使用了gtk_box_pack_start函数的话,就不需要用gtk_widget_realize了呢?
  • 相关阅读:
    drf之频率器拓展
    drf之分页器
    drf之异常处理
    drf之过滤与排序
    drf之频率
    drf之权限
    drf之认证
    drf之路由
    drf之视图家族
    性能优化
  • 原文地址:https://www.cnblogs.com/super119/p/2005636.html
Copyright © 2011-2022 走看看