Я новичок в Python и Kivy, и я пытаюсь создать многостраничное отображение букв алфавита Брайля с соответствующей картинкой букв Брайля, присутствующей на каждой странице. Я действительно хочу больше узнать о создании настольных приложений Kivy. Я действительно надеюсь, что вы можете мне помочь. Я пытаюсь сделать так, чтобы страница выглядела так:
Я знаю, как изображения и кнопки размещаются и настраиваются с точки зрения размера и положения в файле KV. Однако мне нужно узнать, как add_widget()
и clear_widget()
будут влиять на это. Я прочитал документы Kivy, но они едва объясняют, как я могу достичь того, что мне нужно. Я подумал о том, чтобы использовать функцию from kivy.uix.screenmanager import ScreenManager, Screen
, а затем просто создать 26 экранов и направить их через on_click в файле kv. Но это утомительно и слишком ручной. Вот мой код:
class LetterAScreen(Screen):
pass
class LetterBScreen(Screen):
pass
class LetterCScreen(Screen):
pass
class LetterDScreen(Screen):
pass
class LetterEScreen(Screen):
pass
class LetterFScreen(Screen):
pass
class LetterGScreen(Screen):
pass
#.... so and so until Letter Z
sm = ScreenManager(transition=SwapTransition())
#LearnScreen - Alphabet
sm.add_widget(LetterAScreen(name='lettera'))
sm.add_widget(LetterBScreen(name='letterb'))
sm.add_widget(LetterCScreen(name='letterc'))
sm.add_widget(LetterDScreen(name='letterd'))
sm.add_widget(LetterEScreen(name='lettere'))
sm.add_widget(LetterFScreen(name='letterf'))
sm.add_widget(LetterGScreen(name='letterg'))
sm.add_widget(LetterHScreen(name='letterh'))
sm.add_widget(LetterIScreen(name='letteri'))
sm.add_widget(LetterJScreen(name='letterj'))
sm.add_widget(LetterKScreen(name='letterk'))
sm.add_widget(LetterLScreen(name='letterl'))
sm.add_widget(LetterMScreen(name='letterm'))
sm.add_widget(LetterNScreen(name='lettern'))
sm.add_widget(LetterOScreen(name='lettero'))
sm.add_widget(LetterPScreen(name='letterp'))
sm.add_widget(LetterQScreen(name='letterq'))
sm.add_widget(LetterRScreen(name='letterr'))
sm.add_widget(LetterSScreen(name='letters'))
sm.add_widget(LetterTScreen(name='lettert'))
sm.add_widget(LetterUScreen(name='letteru'))
sm.add_widget(LetterVScreen(name='letterv'))
sm.add_widget(LetterWScreen(name='letterw'))
sm.add_widget(LetterXScreen(name='letterx'))
sm.add_widget(LetterYScreen(name='lettery'))
sm.add_widget(LetterZScreen(name='letterz'))
Я не обошел файл kv, потому что не знаю, как это получится. Что мне нужно сделать, так это создать виджеты или функцию, которая будет менять изображения текущей буквы и отображать изображения следующей или предыдущей при нажатии следующей кнопки / без необходимости переключать экраны каждый раз. Я действительно незнаком с тем, как функции работают в Kivy и Python. Я надеюсь, что вы могли бы помочь мне. Спасибо.