kivyblocks/kivyblocks/tab.py

55 lines
1.2 KiB
Python
Raw Normal View History

2020-04-24 18:35:30 +08:00
"""
{
2020-07-24 14:32:32 +08:00
"widgettype":"TabsPanel",
2020-07-23 21:21:23 +08:00
"options":{
"tab_pos":"top_left"
2020-07-24 14:32:32 +08:00
"tabs":[
{
"text":"tab1",
"icon":"/img/hhhh.png",
"refresh_press":Fasle,
"content":{
"widgettype":"urlwidegt",
"url":"reggtY",
}
},
{
2020-04-24 18:35:30 +08:00
}
2020-07-24 14:32:32 +08:00
]
},
2020-04-24 18:35:30 +08:00
}
"""
2020-07-24 20:44:08 +08:00
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem
2020-07-23 21:21:23 +08:00
from kivy.clock import Clock
2020-07-23 21:34:49 +08:00
from kivy.factory import Factory
2020-07-24 14:32:32 +08:00
from .bgcolorbehavior import BGColorBehavior
2020-04-24 18:35:30 +08:00
2020-07-23 21:21:23 +08:00
class TabsPanel(BGColorBehavior, TabbedPanel):
def __init__(self,**options):
self.tabs_list = options.get('tabs')
self.color_level = options.get('color_level',0)
opts = {k:v for k,v in options.items() if k not in ['tabs','color_level']}
TabbedPanel.__init__(self,**opts)
BGColorBehavior.__init__(self)
2020-07-24 20:44:08 +08:00
Clock.schedule_once(self.add_tabs,0)
2020-07-23 21:21:23 +08:00
def add_tab(self,text,desc):
def add(o,w):
self.add_widget(TabbedPanelItem(text=text,content=w))
2020-07-24 14:32:32 +08:00
blocks = Factory.Blocks()
2020-07-23 21:21:23 +08:00
blocks.bind(on_built=add)
blocks.widgetBuild(desc,ancestor=self)
def add_tabs(self,*args):
for d in self.tabs_list:
text = d['text']
desc = d['content']
self.add_tab(text,desc)
2020-07-23 21:34:49 +08:00
Factory.register('TabsPanel',TabsPanel)
2020-04-24 18:35:30 +08:00
2020-07-23 21:34:49 +08:00
if __name__ == '__main__':
from kivy.app import App
pass