kivy中size和pos的使用

kivy中位置和大小属性的使用:

-------------------位置----------------------------

1.pos_hint(‘x-axis-key’:value,’y-axis-key’:value )

#pos_hint接受的是一个dict格式. x-axis-key主要包括x,center_x,right;

y-axis-key主要包括:y,center_y,top

注意:这里面value的取值都是比例值,通常为0-1.

#参数详解(下图):

x: 代表widget的最左边边线;

center_x: 代表竖着从中间切开widget的那条中线

right: 代表widget最右边的边线

y: 代表widget最底边的边线

center_y: 代表横着从中间切开widget的那条中线

top: 代表widget最顶端的边线.

#注意, 这六个参数代表的是边线, 不是某个点!!!

———————————————————————————

———————————————————————————

2.pos: [x , y]:

x, y 代表固定的坐标值,单位是pixel.

也可单独对x和y的具体位置进行赋值. 这里使用到的关键字就是pos_hint中x轴和y轴的关键字.

不过注意!!!这里的赋值都是固定数目的pixel值.不再是比例值!!!

并且,不能再在pos_hint中使用相同的关键字了.

eg:     x:0

          top: root.height

----------------------------大小——————————————

1.size_hint:[width, height]

#也可分开写,即size_hint_x/size_hint_y. 取值全部是比例值,即0-1, 或者是None(为了使用像素值单位width,height,size)

2.size:[width,height]

#和size_hint不同处在于这里的取值全部是固定的像素值,不再是比例值!!!

#也可以分开写, 即widht/height. 取值一样全部是像素值.

#这里要注意的是:想使用size, width或者height的时候, 必须要将对应的size_hint,size_hint_x,或size_hint_y设置成None

eg:使用size(),就需要设置size_hint:(None,None)

      使用width,就需要size_hint_x:None

      使用height,则size_hint_y:None

Tips:

1.Widget不接受比例值, 不管是大小还是位置.即(size_hint,size_hint_x,size_hint_y,pos_hint)不接受. 

以pixel为单位的属性值都是接受的,即(size,width,height,pos,x,right,center_x,y,center_y,top)

2.pos_hint只在FloatLayout,RelativeLayout和BoxLayout中起作用.3

3.在FloatLayout中使用pos,得到的位置是是对于整个Window的,并不是相对于self layout的, 

但是, 如果使用pos_hint指定位置的话, 就会得到相对于self layout的位置, 因为pos_hint一直使用的是relative coordinate.

4.任何一个Layout里面都是是优先使用pos_hint的属性的, 如果想使用固定值的位置属性(这里包括pos,x,center_x,right,y,center_y,top), 需要声明代码中并没有使用pos_hint的属性.

5.任何一个Layout里面, 如果我们想使用size, height, width的属性进行赋值, 需要将size_hint里对应部分的值设置成None; 即可以把size_hint, size_hint_x, size_hint_y设置成None, 以此来激活size, width, height.

注意: [size, height, width]代表的都是比例值, 一般取值从0到1;

         [size, width, height]代表的都是具体的像素值(pixel)

eg: 设置size_hint: (None, .10)以后,就可以使用height来赋值高的长度了.

原文地址:https://www.cnblogs.com/pythonClub/p/10525512.html