Я думаю, что это больше вопрос python, чем вопрос киви.
class Клавиатура разделяет метод из класса GUI. Я создал экземпляр GUI под названием "self.a" для соединения двух классов в классе Keyboard. Кроме того, я создал экземпляр класса клавиатуры «self.key в классе MainApp.
, когда я использую этот метод», print («нажата кнопка возврата»), кнопка «return» смогла сделать оператор print. Я понимаю, почему это работает. Когда я использую «self.a.up ()» в методе, кнопка возврата не вызывает метод up () из класса GUI. Это, вероятно, небольшая деталь или Понятие, которое я пропускаю. Нет ошибки в остальной части программы. Пожалуйста, помогите и спасибо заранее.
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.lang.builder import Builder
from kivy.properties import ObjectProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.modules import keybinding
from kivy.core.window import Window
class GUI(BoxLayout):
main_display = ObjectProperty()
text_input = ObjectProperty()
def plus_1(self):
self.value = int(self.main_display.text)
self.main_display.text = str(self.value + 1)
print (self.main_display.text)
def minus_1(self):
self.value = int(self.main_display.text)
self.main_display.text = str(self.value - 1)
def up(self):
self.main_display.text = self.text_input.text
self.text_input.text = ''
class Keyboard(Widget):
def __init__(self,):
super().__init__()
self.a = GUI()
self.keyboard = Window.request_keyboard(None, self)
self.keyboard.bind(on_key_down=self.on_keyboard_down)
def on_keyboard_down(self, keyboard, keycode, text, modifiers):
if keycode[1] == 'enter':
self.a.up()
# print ("Return button is pressed")
return True
class MainApp(App):
def build(self):
key = Keyboard()
return GUI()
if __name__=="__main__":
app = MainApp()
app.run()