• GTK Box(hbox&vbox)的expand和fill两个属性的实践理解


    1. GtkHBox/GtkVBox的gtk_box_pack_start函数中的expand和fill两个参数的区别:

    expand就是当Box给我们的widget分配了额外的空间后,我们的widget会占住这个空间,不会让给别人。
    fill就是当expand为TRUE的时候,我们不仅占用Box给我们分配的空间,而且会把自己的界面扩大到这个空间上。

    所以,简单来说,expand=TRUE, fill=FALSE就是占住空间但是控件本身大小不变;两个都是TRUE,就是不仅占住空间而且控件也会变得和这个空间一样大;expand=FALSE,fill就没了意义。

    2. GtkHBox中只要expand是TRUE,那么,水平方向上一定fill,所以fill参数此时只影响垂直上是否fill;GtkVBox只要expand是TRUE,那么,垂直方向上一定fill,所以fill参数只影响水平上是否fill

    3. 使用gtk_widget_set_size_request来改变widget的大小。widget如果变大了,而top-level window没有使用gtk_widget_set_size_request设置固定大小时:如果window此时嫌小了,window自动扩大;如果 window不嫌小,能容下扩大后的widget,则window size不变。如果top-level window使用了gtk_widget_set_size_request设置了固定大小,window嫌小的话,widget会超出边界绘制,覆盖其 他的widget。

    使用gtk_widget_set_size_request函数时,width, height设成 -1 表示将widget size设成widget应该有的size(natual size)。所以,一般如果widget size改变了,对于top-level window,都会这样做一下,这样window就自动变成能容纳所有widget的大小。
  • 相关阅读:
    函数之形参与实参
    函数的介绍与方法
    生活如戏
    zabbix中的sql
    1
    1
    通过snmpwalk抓取设备端口的流量状况
    abc
    as
    网络质量IP获取脚本
  • 原文地址:https://www.cnblogs.com/super119/p/2005634.html
Copyright © 2020-2023  润新知