phvbrito Postado Dezembro 3, 2022 Denunciar Share Postado Dezembro 3, 2022 Não consigo fazer esse menu DropDown funcionar de jeito algum, alguém poderia me ajudar mostrando o que fiz de errado? este é o meu .py #controle.py from kivy.lang import Builder from kivymd.app import MDApp from kivymd.uix.boxlayout import MDBoxLayout from kivy.uix.screenmanager import ScreenManager, Screen from kivymd.uix.menu import MDDropdownMenu from kivy.metrics import dp from kivy.properties import StringProperty from kivymd.uix.list import OneLineIconListItem class IconListItem(OneLineIconListItem): icon = StringProperty() class MainTela(ScreenManager): pass class TelaLogin(Screen): pass class TelaMenu(Screen): pass class TelaConsulta(Screen): def popup(self): menu_items = [ { "viewclass": "IconListItem", "icon": "git", "text": f"Item {i}", "height": dp(56), "on_release": lambda x=f"Item {i}": self.set_item(x), } for i in range(5) ] self.menu = MDDropdownMenu( caller=self.TelaConsulta.ids.drop_item, items=menu_items, position="center", width_mult=4, ) menu_items = [ { "viewclass": "IconListItem", "icon": "git", "text": f"Item {i}", "height": dp(56), "on_release": lambda x=f"Item {i}": self.set_item(x), } for i in range(5) ] self.menu.bind() def set_item(self, text_item): self.TelaConsulta.ids.drop_item.set_item(text_item) self.menu.dismiss() def build(self): return self.TelaConsulta class TelaCadastro(Screen): pass class Controle(MDApp): pass if __name__ == '__main__': Controle().run() este é o meu .kv #controle.kv MainTela: TelaLogin: TelaMenu: TelaConsulta: TelaCadastro: name:'TelaCadastro' <TelaLogin@FloatLayout>: name: 'TelaLogin' Image: source: "logo.png" allow_stretch: True size_hint: 0.3, 0.3 pos_hint: {"center_x": 0.5, "center_y": 0.8} MDTextField: pos_hint: {"center_x": 0.5, "center_y": 0.6} size_hint_x: 0.5 hint_text:"Digite o usuário" MDTextField: pos_hint: {"center_x": 0.5, "center_y": 0.5} size_hint_x: 0.5 hint_text:"Digite a senha" password: True MDRoundFlatButton: pos_hint: {"center_x": 0.5, "center_y": 0.4} size_hint_x: 0.5 text:"Confirmar" text_color:"gray" on_release: app.root.current = 'TelaMenu' MDLabel: text: "By Phvbrito" pos_hint: {"center_x": 0.9, "center_y": 0.05} <TelaMenu@FloatLayout>: name:'TelaMenu' MDTopAppBar: title: 'Controle' pos_hint: {'center_x': 0.5, 'center_y': 0.9} left_action_items: [['menu', lambda x: app.stop()]] right_action_items: [['logout', lambda x: app.stop()]] MDRaisedButton: font_size: 25 text: "Consulta" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.3, "center_y": 0.6} on_release: app.root.current = 'TelaConsulta' MDRaisedButton: font_size: 25 text: "Cadastro" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.7, "center_y": 0.6} on_release: app.root.current = 'TelaCadastro' MDRaisedButton: font_size: 25 text: "Sair" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.5, "center_y": 0.2} on_release: app.stop() <TelaCadastro@FloatLayout>: name:'TelaCadastro' MDTopAppBar: title: 'Cadastro' pos_hint: {'center_x': 0.5, 'center_y': 0.9} left_action_items: [['menu', lambda x: app.stop()]] right_action_items: [['logout', lambda x: app.stop()]] MDTopAppBar: pos_hint: {'center_x': 0.5, 'center_y': 0.05} left_action_items: [['arrow-left', lambda x: setattr(root.manager, 'current', 'TelaMenu')]] MDRaisedButton: font_size: 25 text: "Piso" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.3, "center_y": 0.65 } MDRaisedButton: font_size: 25 text: "Vinilico" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.7, "center_y": 0.65 } MDRaisedButton: font_size: 25 text: "Rejuntes" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.3, "center_y": 0.3 } MDRaisedButton: font_size: 25 text: "Rodapé" md_bg_color: "red" size_hint: (.3, .3) pos_hint: {"center_x": 0.7, "center_y": 0.3 } <TelaConsulta@FloatLayout> name: 'TelaConsulta' MDTopAppBar: title: 'Controle' pos_hint: {'center_x': 0.5, 'center_y': 0.9} left_action_items: [['menu', lambda x: app.stop()]] right_action_items: [['logout', lambda x: app.stop()]] MDScreen: MDDropDownItem: id: drop_item pos_hint: {'center_x': .5, 'center_y': .5} text: 'Item 0' on_release: app.menu.open() <IconListItem> IconLeftWidget: icon: root.icon Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
phvbrito
Não consigo fazer esse menu DropDown funcionar de jeito algum, alguém poderia me ajudar mostrando o que fiz de errado?
este é o meu .py
este é o meu .kv
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.