Итак, у меня есть два файла:
- returnStation.py
- returnStationLayout.kv
Чего я пытаюсь достичь: Есть два экрана.Одним из них является цифровая клавиатура.Как только вы наберете свой номер и нажмете клавишу ввода, вы попадете на следующий экран.И я надеюсь, что на другом экране отобразится номер, который вы только что набрали.
Проблема, с которой я столкнулся: Я попытался получить доступ к идентификатору метки, которую я пытаюсь изменить, чтобы показать номер, ноэто не работает: / Я не получаю никакой ошибки в терминале.
Могу ли я получить доступ к значениям неправильно?Если да, то посоветуйте, пожалуйста, как это сделать на двух экранах.Цени любую помощь!
Это файл - returnStation.py:
Как я пытался изменить метку с помощью getPoints ()
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
class ScreenOne(Screen):
pass
class ScreenTwo(Screen):
pass
class PhoneGridLayout(GridLayout):
def backspace(self, textString):
newTextString = textString[0:-1]
self.display.text = newTextString
def getPoints(self, phoneNumber):
st = ScreenTwo()
st.ids.memberStatus.text = phoneNumber #THIS IS HOW I ATTEMPTED TO CHANGE THE LABEL
class ReturnStationLayoutApp(App):
pass
mainscreen = ScreenOne()
mainlayout = PhoneGridLayout()
mainscreen.add_widget(mainlayout)
if __name__ == '__main__':
ReturnStationLayoutApp().run()
это файл - returnStationLayout.kv:
Метка, которую я пытаюсь изменить, находится полностью внизуэтот файл
ScreenManager:
id: screen_manager
ScreenOne:
id: screen_one
name: 'menu'
manager: 'screen_manager'
ScreenTwo:
id: screen_two
name: 'settings'
manager: 'screen_manager'
<CustButton@Button>:
font_size: 32
<ScreenOne>:
PhoneGridLayout:
id: numberPad
display: entry
rows: 5
padding: [300,200]
spacing: 10
# Where input is displayed
BoxLayout:
Label:
text: "+65"
font_size: 50
size_hint: 0.2, 1
TextInput:
id: entry
font_size: 50
multiline: False
padding: [20, ( self.height - self.line_height ) / 2]
BoxLayout:
spacing: 10
CustButton:
text: "1"
on_press: entry.text += self.text
CustButton:
text: "2"
on_press: entry.text += self.text
CustButton:
text: "3"
on_press: entry.text += self.text
CustButton:
text: "DEL"
on_press: numberPad.backspace(entry.text)
BoxLayout:
spacing: 10
CustButton:
text: "4"
on_press: entry.text += self.text
CustButton:
text: "5"
on_press: entry.text += self.text
CustButton:
text: "6"
on_press: entry.text += self.text
CustButton:
text: "AC"
on_press: entry.text = ""
BoxLayout:
spacing: 10
CustButton:
text: "7"
on_press: entry.text += self.text
CustButton:
text: "8"
on_press: entry.text += self.text
CustButton:
text: "9"
on_press: entry.text += self.text
CustButton:
text: "Enter" #HERE IS THE ENTER BUTTON
on_press:
app.root.transition.direction = 'left'
app.root.transition.duration = 1
app.root.current = 'settings'
numberPad.getPoints(entry.text)
BoxLayout:
spacing: 10
Label:
text: ""
CustButton:
text: "0"
on_press: entry.text += self.text
Label:
text: ""
Label:
text: ""
<ScreenTwo>:
BoxLayout:
Label:
id: memberStatus
text: '' #THIS IS THE LABEL I AM TRYING TO CHANGE
Button:
text: 'Back to menu'
on_press:
app.root.transition.direction = "right"
app.root.current = 'menu'