Доступ к виджету в дочернем макете кивы - PullRequest
0 голосов
/ 18 марта 2020

Это мой код. У меня есть менеджер экранов с двумя экранами.

  • Экран 1: Вход в систему
  • Экран 2: Параметры с вкладками

На экране 2 у меня есть раскрывающийся виджет в котором я хочу загрузить некоторые значения по умолчанию. Но я не могу получить доступ к идентификатору того же самого.

Builder.load_string("""

<TACLogin>
   FloatLayout:

      MDToolbar:
        title: "TEST"
        pos_hint: {"x":0.001, "y":0.9}

      MDRectangleFlatIconButton:
        id: tac_screen1_next_id
        icon: "page-next-outline"
        font_size: '20sp'            
        font_name: 'fonts/prox_nova.ttf'
        md_bg_color:  0, 0.502, 0.502, 1       
        text_color: 1,1,1,1
        text: 'Login'
        on_press: root.manager.current = 'tacconfig'
        size_hint: None, None
        size: dp(100), dp(30) 
        pos_hint: {"x":0.7, "y":0.2}
<TACConfig>
    BoxLayout:
      orientation:"vertical" 
      MDToolbar:
        title: "Taxonomy Administration Console"
        specific_text_color: app.theme_cls.accent_color

      MDTabs:
        id: android_tabs
        text_color_normal: 1,1,1,1
        Tab:
            text:"Home"
            text_color_normal: 1,1,1,1
            MDLabel:
                color: 0,0,0,1
                font_size: '20sp'
                font_name: 'fonts/prox_nova.ttf'

                pos_hint: {"x":0.4, "y":0.1}
                text:'WELCOME ADMIN'
        Tab:
            text_color_normal: 1,1,1,1
            text:"Configure User"
            TACUserConfig:

        Tab:
            text_color_normal: 1,1,1,1
            text:"Configure DataSource"
            TACScreen1:

        Tab:
            text_color_normal: 1,1,1,1
            text:"Exit"                    

 <TACUserConfig>

FloatLayout:
    id: ucScreen_id        
    MDLabel:            
        color: 0,0,0,1
        font_size: '15sp'
        font_name: 'fonts/prox_nova.ttf'
        text:'Select User Type'
        pos_hint:{'center':(0.7,0.7)}
        size_hint:0.8,1.4
    MDDropDownItem:
        id: user_type            
        pos_hint:{"x":0.5, "y":0.68}         
        dropdown_bg: [1, 1, 1, 1]
""")

Это мой python код

class TACLogin(Screen, MDApp):
def __init__(self, **kwargs):
    super(TACLogin, self).__init__(**kwargs)

class TACUserConfig(Screen, MDApp):
def __init__(self, **kwargs):
    super(TACUserConfig, self).__init__(**kwargs)
    print(self.ids)

def on_start(self):
    self.ids.ucScreen_id.ids.user_type.items = ["Business User", "Admin User"]

sm = ScreenManager()
sm.add_widget(TACLogin(name='taclogin'))
sm.add_widget(TACConfig(name='tacconfig'))
sm.add_widget(TACUserConfig(name='tacuserconfig'))

class TestApp(MDApp):

def build(self):
    self.theme_cls.primary_palette = "Teal"
    return sm


if __name__ == '__main__':
  TestApp().run()

Я пытаюсь добавить значения в раскрывающийся список, on_start функция не запускается вообще, и я не могу получить доступ к идентификатору выпадающего user_type. Может кто-нибудь помочь мне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...