Как отменить выбор нажатой кнопки в NavigationDrawer?Python

Программы на Python
Ответить
Anonymous
 Как отменить выбор нажатой кнопки в NavigationDrawer?

Сообщение Anonymous »

Я использую Kivy 2.0.1, и я создал topAppBar со значком «меню», это открывает NavigationDrawer с разными кнопками, которые при нажатии могут меняться на разные окна в зависимости от кнопки. Проблема в том, что я меняю окно а затем я возвращаюсь к первому окну, окно, на которое я нажал первым, все еще выбрано, и это сбивает с толку, потому что кто-то думает, что кнопка выбрана именно в окне, и это неверно.
введите изображение описание здесь
Например, на изображении видно, что выбран «Вторичный лист», но на самом деле я нахожусь на «главной странице», только он остается выбранным, хотя окна измененный. Это мой файл kv:
:
MDScreen:
MDNavigationLayout:
MDScreenManager:
MDScreen:
name: "main_screen"

# Barra superior en la parte superior
MDTopAppBar:
id: top_app_bar
type: "small"
pos_hint: {"top": 1}

MDTopAppBarLeadingButtonContainer:
MDActionTopAppBarButton:
icon: "menu"
on_release: nav_drawer.set_state("toggle")

MDTopAppBarTitle:
text: "Página Principal"

MDNavigationDrawer:
id: nav_drawer
drawer_type: "modal"

MDNavigationDrawerMenu:

MDNavigationDrawerHeader:
orientation: "vertical"

MDLabel:
text: "Menu"
font_style: "Title"
role: "medium"
adaptive_height: True

MDNavigationDrawerDivider:

MDNavigationDrawerItem:
on_release: app.root.current = 'hoja1'

MDNavigationDrawerItemLeadingIcon:
icon: "home"
MDNavigationDrawerItemText:
text: "Página principal"

MDNavigationDrawerItem:
on_release: app.root.current = 'hoja2'

MDNavigationDrawerItemText:
text: "Hoja secundaria"

MDNavigationDrawerItem:
on_release: app.root.current = 'hoja3'

MDNavigationDrawerItemText:
text: "Hoja secundaria 2"

это мой файл main.py
from kivy.core.window import Window
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.screenmanager import MDScreenManager
from kivymd.uix.navigationdrawer import MDNavigationDrawer,MDNavigationLayout, MDNavigationDrawerItem, MDNavigationDrawerItemTrailingText
from kivymd.uix.appbar import MDActionTopAppBarButton, MDFabBottomAppBarButton, MDTopAppBar

Window.size =(400,700)
Builder.load_file('kvs/hoja1.kv')
Builder.load_file('kvs/hoja2.kv')
Builder.load_file('kvs/hoja3.kv')

class WindowManager(MDScreenManager):
pass

class MainScreen(MDScreen):
pass

class SecondaryScreen(MDScreen):
pass

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

def build(self):
self.wm = WindowManager()
screens = [
MainScreen(name = 'hoja1'),
SecondaryScreen(name = 'hoja2'),
SecondaryScreen2(name = 'hoja3'),
]
for screen in screens:
self.wm.add_widget(screen)
return self.wm

if __name__== "__main__":
MainApp().run()

Примечание: файлы kv «Hoja 2» и «Hoja 3» имеют ту же структуру, что и «Hoja 1».
I hope someone can help me so that it doesn't stay selected when I change and return from the pages.
Thank you.


Подробнее здесь: https://stackoverflow.com/questions/793 ... tiondrawer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»