Kivy实用篇之计时器小程序
BoxLayout
的使用_thread
的简单应用ScrollView
来显示多条记录信息Property
绑定来实现数据自动更新
程序基本布局
小程序布局共分为三部分- 计时器
- 记录信息
- 控制按钮
在kv代码实现如下:
Builder.load_string("""
<Stopwatch>:
control: layout_control
timer: label_timer
# start: button_start
record: layout_record
orientation: 'vertical'
spacing: 10
Label:
id: label_timer
size_hint:(1, .8)
font_size: 100
text: "00:00:00.00"
ScrollView:
id: sv
size_hint: (1, .1)
GridLayout:
id: layout_record
cols: 1
spacing: 10
size_hint_y: None
height: max(self.minimum_height, sv.height)
BoxLayout:
id: layout_control
size_hint: (1, .1)
orientation: 'horizontal'
spacing: 10
# Button: # 定义在kv文件中的控件被移除后,再次添加会出现错误
# id: button_start
# text: 'Start'
# on_press: root.timer_start()
""")
在kv中定义的控件,被remove_widget
移除后,再次使用add_widget
添加时,会出现错误。错误信息:
ReferenceError: weakly-referenced object no longer exists
将ScrollView
内的GridLayout
的height
设置为,自身最小高度minimum_height
和ScrollView
高度值,两者的最大值,即
height: max(self.minimum_height, sv.height)