У меня есть это приложение, которое имеет два класса, по одному для каждого экрана: один экран SIGNIN и один экран TEST. В классе SIGNIN приложение берет адрес электронной почты из текстового ввода и использует его для создания базы данных для пользователя. Я хочу снова использовать ввод текста в классе TEST, поэтому я подумал, что могу наследовать от моего класса SIGNIN. Прямо сейчас оба класса наследуются от класса Screen от kivy. Поэтому я решил, что мой класс TEST должен наследоваться только от класса SIGNIN. Но если я делаю это, я наследую весь экран: оба экрана накладываются друг на друга. В конечном счете, я хочу получить значение внутри пользовательской переменной только из класса SIGNIN. Как я могу это сделать? Ниже приведен пример того, что у меня есть. Я хочу получить доступ к содержимому table_name во втором классе.
class SigninWindows(Screen):
def add_user(self):
uname = self.ids.username_field.text
table_name = uname.replace('@', '_').replace('.', '_')
class QuestionWindows(Screen):
def __init__(self, **kwargs):
super(QuestionWindows, self).__init__(**kwargs)
def _get_df(self):
try:
conn = pymysql.connect(
host=hostname,
port=int(port),
user=user,
passwd=passwd,
db=db,
charset='utf8mb4'
)
query = (""" SELECT * FROM db.`%s` """ % table_name)
print('QUERY IS:',query)
<SigninWindows>:
id: signin_page
name: "signin_page"
orientation: "vertical"
spacing: 10
space_x: self.size[0]/5.5
canvas.before:
Color:
rgba: (0,0,0,1)
Rectangle:
size: self.size
pos: self.pos
BoxLayout:
id: data_signin
orientation: 'vertical'
size_hint_x: 1
BoxLayout:
id: validate_info
orientation: "vertical"
size_hint: 1,0.8
padding: 80, 10
Label:
id: info
text: ''
markup: True
TextInput:
id: username_field
hint_text: "Username"
hint_text_color: 0.5,0.5,0.5,1
multiline: False
focus: True
on_text_validate: pwd_field.focus = True
size_hint: 1, .8
foreground_color: 0.5,0.5,0.5,1
background_color: .1,.1,.1,1
write_tab: False