日常工作中的各种技术笔记
python 中 extend vs. append vs. +operator
1)list.append() 是将object添加到列表末尾,是将参数obj作为一个整体添加,一次只会添加一个元素。
2)list.extend() 是将iterable中的元素追加到列表末尾去,会一次添加多个元素。
3)+operator 类似 extend() 但区别是 “+”会生成新的列表,但 extend() 不会。
自定义的 Kivy Widget size 设定无效
原来是因为把自定义的Widget
放到了 FloatLayout
下,FloatLayout
会根据 size_hit
管理子 Widget 的大小,所以自己修改的 size 不起作用。解决的方法是设置子widget的size_hit 为 (None, None)
,需要在创建对象时作为构造函数的参数传入,例如:
BBox(size_hint=(None, None))
但是不能是设置 pos_hint=(None, None)
否则报错,想想也对,因为 FloatLayout 的主要作用就是能根据子Widget的 pos_hint 来定位,如果不用这个属性,那干脆就不用 FloatLayout 好了。
如何设置 kivy desktop app 启动时全屏显示?
分下面几步即可实现:
1. 重写 App.on_start() 方法
2. 在其中调用 self.root_window.maximize() 即可。
代码如下:
def on_start(self):
self.root_window.maximize()