@boda1006

Как сделать в python kivy, чтобы при нажатии на кнопки появлялись совсем другие кнопки?

Надо, чтобы когда жмешь кнопку появлялись другие 5 кнопок.Как это можно реализовать?
  • Вопрос задан
  • 3168 просмотров
Пригласить эксперта
Ответы на вопрос 1
20PYTHON20
@20PYTHON20
Создаешь в классе функцию что то типа,прописываешь там кнопки количество которое тебе будет нужно
Далее в главной кнопке ,с которой будут открываться другие пишешь следущее :
button_open.bind  (on_press = *название функции без звездочек )

При её нажатии появятся кнопки .
*файл MyApp.py
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager , Screen

class MenuScreen(Screen) :
    def __init__(self,**kwargs) :
        super(MenuScreen,self).__init__(**kwargs)
        self.fl = BoxLayout(orientation = "vertical")
        #Кнопка на которую нужно нажать 
        self.but_open = Button (text = "нажми на меня",size_hint = (None,None) ,size = (600,40),pos = (20,50),on_press = self.ButtonOpen)
        self.fl.add_widget(self.but_open)

     def ButtonOpen(self) :
         self.but_open1 = Button (text = "кнопка1",size_hint = (None,None) ,size = (600,40),pos = (20,100))
         self.but_open2 = Button (text = "Не жми на меня",size_hint = (None,None) ,size = (600,40),pos = (20,150))
         self.fl.add_widget(self.but_open1)
         #Аналогично пишем сюда и другие кнопки

class MyApp() :
    def build(self):
        manager = ScreenManager()
    	manager.add_widget(MenuScreen(name = 'menu'))
    	return manager

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

*Примечание :
Если выдаст ошибку в функции попробуйте в выражении
on_press = ( self.ButtonOpen())
Пишу в основном через kv lang и подзабыл немного .
Надеюсь вам это поможет ,сам только новичок
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы