Kivy:如何定义在打开 TabbedPanel 时激活哪个选项卡
Kivy: how to define which Tab is to be active on opening a TabbedPanel
打开 TabbedPanel 时如何定义哪个选项卡处于活动状态?
这里我在左侧使用标签,因此希望标签 #3 在开始时处于活动状态,而不是标签 #1。
import kivy, os
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.base import runTouchApp
Builder.load_string("""
<TabbedTestScreen>:
TabbedPanel:
do_default_tab: False
tab_pos: 'left_top'
tab_height: 90
tab_width: 90
TabbedPanelItem:
text: '1'
Label:
text: '1'
TabbedPanelItem:
text: '2'
Label:
text: '2'
TabbedPanelItem:
text: '3'
id: home_tab
Label:
text: '3'
""")
class TabbedTestScreen(Screen):
pass
runTouchApp(TabbedTestScreen())
您可以使用 switch_to
在 class 初始化时执行此操作:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.base import runTouchApp
from kivy.properties import ObjectProperty
from kivy.clock import Clock
Builder.load_string("""
<TabbedTestScreen>:
tab_panel: tab_panel
home_tab: home_tab
TabbedPanel:
id: tab_panel
do_default_tab: False
tab_pos: 'left_top'
tab_height: 90
tab_width: 90
TabbedPanelItem:
text: '1'
Label:
text: '1'
TabbedPanelItem:
text: '2'
Label:
text: '2'
TabbedPanelItem:
text: '3'
id: home_tab
Label:
text: '3'
""")
class TabbedTestScreen(Screen):
tab_panel = ObjectProperty(None)
home_tab = ObjectProperty(None)
def __init__(self, **kwargs):
super(TabbedTestScreen, self).__init__(**kwargs)
Clock.schedule_once(lambda *args: self.tab_panel.switch_to(self.home_tab))
runTouchApp(TabbedTestScreen())
打开 TabbedPanel 时如何定义哪个选项卡处于活动状态?
这里我在左侧使用标签,因此希望标签 #3 在开始时处于活动状态,而不是标签 #1。
import kivy, os
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.base import runTouchApp
Builder.load_string("""
<TabbedTestScreen>:
TabbedPanel:
do_default_tab: False
tab_pos: 'left_top'
tab_height: 90
tab_width: 90
TabbedPanelItem:
text: '1'
Label:
text: '1'
TabbedPanelItem:
text: '2'
Label:
text: '2'
TabbedPanelItem:
text: '3'
id: home_tab
Label:
text: '3'
""")
class TabbedTestScreen(Screen):
pass
runTouchApp(TabbedTestScreen())
您可以使用 switch_to
在 class 初始化时执行此操作:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.base import runTouchApp
from kivy.properties import ObjectProperty
from kivy.clock import Clock
Builder.load_string("""
<TabbedTestScreen>:
tab_panel: tab_panel
home_tab: home_tab
TabbedPanel:
id: tab_panel
do_default_tab: False
tab_pos: 'left_top'
tab_height: 90
tab_width: 90
TabbedPanelItem:
text: '1'
Label:
text: '1'
TabbedPanelItem:
text: '2'
Label:
text: '2'
TabbedPanelItem:
text: '3'
id: home_tab
Label:
text: '3'
""")
class TabbedTestScreen(Screen):
tab_panel = ObjectProperty(None)
home_tab = ObjectProperty(None)
def __init__(self, **kwargs):
super(TabbedTestScreen, self).__init__(**kwargs)
Clock.schedule_once(lambda *args: self.tab_panel.switch_to(self.home_tab))
runTouchApp(TabbedTestScreen())