我想使用Kivy创建一个真相或胆敢的生成器。我已经完成了所有设计,但是有一个问题。当我单击生成按钮时,我希望它从我拥有的文本文件中随机选择一个敢于冒险的事实。我的文本文件之一叫做“ dares.txt”和“ truths.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]
如果有人可以帮助我并告诉我该怎么做,那真是太棒了!我想知道单击按钮时,当用户在文本框中键入“真”或“敢”时,它如何显示文本或随机的真相或敢。