zoukankan      html  css  js  c++  java
  • 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的大小。
  • 相关阅读:
    maven dependencies 里面的包怎么导出
    webUploader react 接口设计
    HTML5 History API实现无刷新跳转
    Object.defineproperty实现数据和视图的联动
    jsLoader、cssLoader、imageLoader
    【转】前端工程化-公共模块的依赖和常用的工作流
    JDBC详解
    正则表达式
    【GOF23设计模式】备忘录模式
    【GOF23设计模式】观察者模式
  • 原文地址:https://www.cnblogs.com/super119/p/2005634.html
Copyright © 2011-2022 走看看