Я хочу создать генератор «правда или действие» с помощью Kivy. Я закончил проектирование, но у меня есть одна проблема. Когда я нажимаю кнопку «Создать», я хочу, чтобы она выбирала случайный вызов или правду из имеющихся у меня текстовых файлов. Один из моих текстовых файлов называется «dares.txt» и «trues.txt». Как я могу сделать так, чтобы, когда пользователь нажимает кнопку «Создать», он показывал случайный вызов или правду из моих текстовых файлов ниже. Вот мой код для приложения «Правда или действие».
файл main.py:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
import json, glob
from datetime import datetime
from pathlib import Path
import random
Builder.load_file('design.kv')
class LoginScreen(Screen):
def sign_up(self):
self.manager.current = "sign_up_screen"
def login(self,uname,pword):
with open("users.json") as file:
users = json.load(file)
if uname in users and users[uname]['password'] == pword:
self.manager.current = "login_screen_success"
else:
self.ids.login_wrong.text = "Sorry, The Username Or Password You Entered was Incorrect. Please Try Again!"
class RootWidget(ScreenManager):
pass
class SignUpScreen(Screen):
def add_user(self,uname,pword):
with open("users.json") as file:
users = json.load(file)
users[uname] = {'username': uname, 'password': pword,
'created': datetime.now().strftime("%Y-%m-%d %H-%M-%S")}
with open("users.json", 'w') as file:
json.dump(users,file)
self.manager.current = "sign_up_screen_success"
class SignUpScreenSuccess(Screen):
def go_to_login(self):
self.manager.transition.direction = 'right'
self.manager.current = "login_screen"
class LoginScreenSuccess(Screen):
def log_out(self):
self.manager.transition.direction = "right"
self.manager.current = "login_screen"
class MainApp(App):
def build(self):
return RootWidget()
if __name__ == "__main__":
MainApp().run()
файл design.kv :
<LoginScreenSuccess>:
GridLayout:
cols: 1
padding: 30, 30
spacing: 30, 30
Button:
color: 1, 0, 0, 1
text: "Quit App"
on_press: root.log_out()
Label:
text: "Truth or Dare?"
TextInput:
hint_text: "Two Things To Try: Truth or Dare"
Button:
text: "Generate"
#on_press: root
ScrollView:
Label:
text: ""
#text_size = self.width, None
#size_hint_y: None
#height: self.texture_size[1]
Если бы кто-нибудь мог помочь и сказать мне, что именно делать, это было бы здорово! Я хотел бы знать, как при нажатии кнопки она может отображать текст или случайную истину или действие, когда пользователь вводит «правда» или «смею» в текстовое поле.