Python 我能';t在kivymd中从另一个屏幕获取textfield的值 screen\u helper=“” #:导入utils kivy.utils 屏幕管理器: id:屏幕管理器 菜单屏幕: 规则屏幕: 数字层: 配置文件屏幕: 播放器屏幕: 设置屏
我能';t在kivymd中从另一个屏幕获取textfield的值Python 我能';t在kivymd中从另一个屏幕获取textfield的值 screen\u helper=“” #:导入utils kivy.utils 屏幕管理器: id:屏幕管理器 菜单屏幕: 规则屏幕: 数字层: 配置文件屏幕: 播放器屏幕: 设置屏,python,kivy,kivy-language,kivymd,Python,Kivy,Kivy Language,Kivymd,我能';t在kivymd中从另一个屏幕获取textfield的值 screen\u helper=“” #:导入utils kivy.utils 屏幕管理器: id:屏幕管理器 菜单屏幕: 规则屏幕: 数字层: 配置文件屏幕: 播放器屏幕: 设置屏幕: : 名称:“菜单” MDRectangleFlatButton: 文本:“开始” 位置提示:{'center_x':0.5,'center_y':0.6} 新闻界: root.manager.current='number' root.m
screen\u helper=“”
#:导入utils kivy.utils
屏幕管理器:
id:屏幕管理器
菜单屏幕:
规则屏幕:
数字层:
配置文件屏幕:
播放器屏幕:
设置屏幕:
:
名称:“菜单”
MDRectangleFlatButton:
文本:“开始”
位置提示:{'center_x':0.5,'center_y':0.6}
新闻界:
root.manager.current='number'
root.manager.transition.direction=“left”
MDRectangleFlatButton:
文本:“规则”
位置提示:{'center\ux':0.5,'center\uy':0.5}
新闻界:
root.manager.current='Rules'
root.manager.transition.direction=“向上”
MDRectangleFlatButton:
文本:“设置”
位置提示:{'center\ux':0.5,'center\uy':0.4}
新闻界:
root.manager.current='settings'
root.manager.transition.direction=“向下”
:
姓名:'号码'
MDTextField:
id:*numberfield**
提示文字:“输入玩家数量”
helper_文本:“最多允许4个用户”
帮助器\u文本\u模式:“打开焦点”
颜色模式:“自定义”
线条颜色焦点:app.theme\u cls.primary\u颜色
右图标:“帐户”
必填项:True
最大文本长度:4
图标\u右\u颜色:app.theme\u cls.primary\u颜色
位置提示:{'center_x':0.5,'center_y':0.5}
大小提示:无
宽度:300
MDRectangleFlatButton:
文本:“下一个”
位置提示:{'center_x':0.75,'center_y':0.2}
新闻界:
应用程序禁用_按钮(numberfield.text,根)
MDRectangleFlatButton:
文本:“返回”
位置提示:{'center\ux':0.25,'center\uy':0.2}
新闻界:
root.manager.current='菜单'
root.manager.transition.direction=“右”
:
名称:“规则”
MDLabel:
课文:“用不同的答案回答每个问题。所有的答案都将被随机排列,最后你会有许多有趣的句子”
哈利恩:“中心”
MDRectangleFlatButton:
文本:“返回”
位置提示:{'center\ux':0.25,'center\uy':0.2}
新闻界:
root.manager.current='菜单'
root.manager.transition.direction=“向下”
:
名称:“个人资料”
MDTextField:
最大文本长度:10
helper_文本:“您可以输入10个字符”
帮助器\u文本\u模式:“打开焦点”
id:profilefield
提示文字:“输入玩家1的用户名”
右图标:“帐户密钥”
必填项:True
最大文字长度:12
图标\u右\u颜色:app.theme\u cls.primary\u颜色
位置提示:{'center_x':0.5,'center_y':0.5}
大小提示:无
宽度:300
MDRectangleFlatButton:
文本:“返回”
位置提示:{'center\ux':0.25,'center\uy':0.2}
新闻界:
root.manager.current='number'
root.manager.transition.direction=“右”
MDRectangleFlatButton:
文本:“保存”
位置提示:{'center_x':0.75,'center_y':0.2}
新闻界:
应用程序.禁用按钮2(profilefield.text,根)
背景颜色:(1,1,1,0)
在以下情况之前:
颜色:
rgba:self.background\u颜色
矩形:
大小:self.size
pos:self.pos
#标签文本颜色
颜色:app.theme\u cls.primary\u颜色
:
姓名:'玩家'
MDRectangleFlatButton:
文本:“返回”
位置提示:{'center\ux':0.25,'center\uy':0.2}
新闻界:
root.manager.current='profile'
root.manager.transition.direction=“右”
MDRectangleFlatButton:
文本:“保存”
位置提示:{'center_x':0.75,'center_y':0.2}
新闻界:
root.manager.current='results'
网格布局:
科尔斯:1
位置:0,0
大小:root.width,root.height#取整个屏幕的大小
盒子布局:
方向:“垂直”
大小:root.width,root.height#用于整个屏幕
间距:0#按钮之间的间距
填充:130
标签:
文字:“谁?”
MDTextField:
身份证:谁
多行:False
标签:
文本:“与谁一起”
MDTextField:
身份证:谁
多行:False
标签:
课文:“你喜欢什么?”
MDTextField:
id:什么事
多行:False
标签:
文字:“什么时候?”
MDTextField:
id:什么时候
多行:False
标签:
文字:“哪里?”
MDTextField:
id:在哪里
多行:False
标签:
文本:“”
id:结果
字体大小:20
:
名称:“设置”
MDSwitch:
位置提示:{'center\ux':0.5,'center\uy':0.5}
on_active:应用程序on_开关on_active(自激活)
MDLabel:
文字:“灯光模式”
位置提示:{'center\ux':0.3,'center\uy':0.5}
哈利恩:“中心”
字体样式:“字幕2”
MDLabel:
文本:“暗模式”
位置提示:{'center\ux':1.15,'center\uy':0.5}
哈利格:“中心”
字体样式:“字幕2”
MDRectangleFlatButton:
文本:“返回主菜单”
位置提示:{'center\ux':0.5,'center\uy':0.4}
按:root.manager.current='菜单'
"""
从kivymd.app导入MDApp
从kivy.app导入应用程序
从kivy.uix.screenmanager导入screenmanager
从kivymd.uix.screen导入屏幕
从kivy.lang导入生成器
从帮助程序导入屏幕\u帮助程序
从kivymd.uix.textfield导入TextInput
类菜单屏幕(屏幕):
通过
类别编号图层(屏幕):
通过
类配置文件屏幕(屏幕):
通过
类规则屏幕(屏幕):
通过
班级播放机屏幕(屏幕):
通过
类别设置屏幕(屏幕):
通过
#创建屏幕管理器
sm=屏幕管理
screen_helper = """
#:import utils kivy.utils
ScreenManager:
id:screen_manager
MenuScreen:
RulesScreen:
NumberPlayers:
ProfileScreen:
PlayersScreen:
SettingsScreen:
<MenuScreen>:
name: 'menu'
MDRectangleFlatButton:
text: 'Start'
pos_hint: {'center_x':0.5,'center_y':0.6}
on_press:
root.manager.current = 'number'
root.manager.transition.direction= "left"
MDRectangleFlatButton:
text: 'Rules'
pos_hint: {'center_x':0.5,'center_y':0.5}
on_press:
root.manager.current = 'Rules'
root.manager.transition.direction= "up"
MDRectangleFlatButton:
text: 'Settings'
pos_hint: {'center_x':0.5,'center_y':0.4}
on_press:
root.manager.current = 'settings'
root.manager.transition.direction= "down"
<NumberPlayers>:
name: 'number'
MDTextField:
id: **numberfield**
hint_text: 'Enter the number of players'
helper_text: 'Max 4 users allowed'
helper_text_mode: 'on_focus'
color_mode: 'custom'
line_color_focus: app.theme_cls.primary_color
icon_right: 'account'
required: True
max_text_length: 4
icon_right_color: app.theme_cls.primary_color
pos_hint:{'center_x': 0.5, 'center_y': 0.5}
size_hint_x:None
width:300
MDRectangleFlatButton:
text: 'Next'
pos_hint:{'center_x': 0.75, 'center_y': 0.2}
on_press:
app.disabling_button(numberfield.text,root)
MDRectangleFlatButton:
text: 'Back'
pos_hint: {'center_x':0.25,'center_y':0.2}
on_press:
root.manager.current = 'menu'
root.manager.transition.direction= "right"
<RulesScreen>:
name: 'Rules'
MDLabel:
text: 'Answer each question with different answers. All the answers will be shuffled randomly and in the end you will have many funny sentences'
halign: 'center'
MDRectangleFlatButton:
text: 'Back'
pos_hint: {'center_x':0.25,'center_y':0.2}
on_press:
root.manager.current = 'menu'
root.manager.transition.direction= "down"
<ProfileScreen>:
name: 'profile'
MDTextField:
max_text_length: 10
helper_text: 'You can enter 10 characters'
helper_text_mode: 'on_focus'
id: profilefield
hint_text: "Enter username for player 1"
icon_right: "account-key"
required: True
max_text_lenght: 12
icon_right_color: app.theme_cls.primary_color
pos_hint:{'center_x': 0.5, 'center_y': 0.5}
size_hint_x:None
width:300
MDRectangleFlatButton:
text: 'Back'
pos_hint: {'center_x':0.25,'center_y':0.2}
on_press:
root.manager.current = 'number'
root.manager.transition.direction= "right"
MDRectangleFlatButton:
text:'Save'
pos_hint:{'center_x': 0.75, 'center_y': 0.2}
on_press:
app.disabling_button2(profilefield.text,root)
<Label>
background_color: (1,1,1,0)
canvas.before:
Color:
rgba: self.background_color
Rectangle:
size: self.size
pos: self.pos
# label text color
color:app.theme_cls.primary_color
<PlayersScreen>:
name: 'players'
MDRectangleFlatButton:
text: 'Back'
pos_hint: {'center_x':0.25,'center_y':0.2}
on_press:
root.manager.current = 'profile'
root.manager.transition.direction= "right"
MDRectangleFlatButton:
text:'Save'
pos_hint:{'center_x': 0.75, 'center_y': 0.2}
on_press:
root.manager.current = 'results'
GridLayout:
cols: 1
pos: 0,0
size: root.width , root.height #take size of entire screen
BoxLayout:
orientation: "vertical"
size: root.width, root.height # fot take entire screen
spacing: 0 # space btween buttons
padding: 130
Label:
text: "Who?"
MDTextField:
id: who
multiline: False
Label:
text: "With whom"
MDTextField:
id: whom
multiline: False
Label:
text: "What does?"
MDTextField:
id: whatdoes
multiline: False
Label:
text: "When?"
MDTextField:
id: when
multiline: False
Label:
text: "Where?"
MDTextField:
id: where
multiline: False
Label:
text: ''
id: result
font_size: 20
<SettingsScreen>:
name: 'settings'
MDSwitch:
pos_hint: {'center_x':0.5,'center_y':0.5}
on_active: app.on_switch_active(self.active)
MDLabel:
text: 'Light Mode'
pos_hint: {'center_x':0.3,'center_y':0.5}
halign: 'center'
font_style: 'Subtitle2'
MDLabel:
text: 'Dark Mode'
pos_hint: {'center_x':1.15,'center_y':0.5}
haligh: 'center'
font_style: 'Subtitle2'
MDRectangleFlatButton:
text:'Go back to main menu'
pos_hint: {'center_x':0.5,'center_y':0.4}
on_press: root.manager.current = 'menu'
"""
from kivymd.app import MDApp
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager
from kivymd.uix.screen import Screen
from kivy.lang import Builder
from helper import screen_helper
from kivymd.uix.textfield import TextInput
class MenuScreen(Screen):
pass
class NumberPlayers(Screen):
pass
class ProfileScreen(Screen):
pass
class RulesScreen(Screen):
pass
class PlayersScreen(Screen):
pass
class SettingsScreen(Screen):
pass
# Create the screen manager
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(ProfileScreen(name='profile'))
sm.add_widget(RulesScreen(name='Rules'))
sm.add_widget(PlayersScreen(name='players'))
sm.add_widget(NumberPlayers(name='number'))
sm.add_widget(SettingsScreen(name='settings'))
class DemoApp(MDApp, NumberPlayers):
def build(self):
self.theme_cls.primary_palette = "Blue"
screen = Screen()
self.username = Builder.load_string(screen_helper)
screen.add_widget(self.username)
return screen
def on_switch_active(self, value):
if value:
self.theme_cls.theme_style = "Dark"
else:
self.theme_cls.theme_style = "Light"
def disabling_button(self, empty, root):
if empty and len(empty) < 5:
root.manager.current = 'profile'
else:
self.disabled = True
def disabling_button2(self, empty, root):
if empty and len(empty) < 11:
root.manager.current = 'players'
root.manager.transition.direction = 'left'
else:
self.disabled = True