通过kivy中的Popup小部件创建一个弹出式窗口,弹出的窗口覆盖整个父窗口,在Popup天窗中必须设置tilte和content两个属性。
Popup弹窗默认大小为size_hint=(1,1),表示全屏显示了如果不希望全屏显示,可以修改size_hint的值,或设置固定的窗口。
实例:Popup弹窗的使用方法
新建一个popup.py文件,具体代码如下:
- from kivy.app import App
- from kivy.uix.boxlayout import BoxLayout
- from kivy.factory import Factory
- class PopupBox(BoxLayout):
- def __init__(self,**kwargs):
- super().__init__(**kwargs)
- class PopupApp(App):
- def build(self):
- return PopupBox()
- if __name__ == '__main__':
- PopupApp().run()
根据popup.py文件中PopupApp()类,新建popup.kv文件,具体代码如下:
- #: import Factory kivy.factory.Factory
-
- <MyPopup@Popup>:
- auto_dismiss:False
- title:'Hello Popup'
- on_dismiss:print('on_dismiss is running')
- on_open:print('on_open is running')
- size_hint:.8,.8
-
- AnchorLayout:
- anchor_x:'center'
- anchor_y:'bottom'
- Button:
- text:'Close Popup'
- size_hint:None,None
- size:100,100
- on_release:root.dismiss()
-
- <PopupBox>:
- Button:
- text:'Open Popup'
- size:100,120
- on_release:Factory.MyPopup().open()
运行后结果如下图:
点击中间文字后,弹出窗口,后台显示on_open is running,点击close Popup,窗口关闭,回到之前界面,后台显示on_dismiss is running,如下图:
5.3.2 常用属性
Popup弹窗可以用下表中的属性来设置其样式和触发事件:
Popup弹窗常用属性
属性 | 说明 |
title | 弹出窗口的标题,默认为”No title“ |
title_align | 标题的水平对齐方式,可设置为:left(默认)、center、right或justify |
title_color | 设置使用的颜色,默认为[1,1,1,1] |
title_font | 标题使用的字体,默认为”Roboto“ |
title_size | 标题的字体大小,默认为”14sp“ |
content | 标题正下方显示的弹窗的内容,默认为None,可设置为其它小部件 |
separator_color | 标题和内容之间的分隔符使用的颜色,默认为[47/255,167/255,212/255,1] |
separator_height | 分隔符的高度,默认为2dp |
add_widget(widget) | 添加一个新的小部件作为此小部件的子级 |
on_open | 打开弹窗时触发 |
on_dismiss | 弹窗关闭时触发 |