Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class Kivy-滑块类值在另一个屏幕上更改_Class_Slider_Kivy_Bind - Fatal编程技术网

Class Kivy-滑块类值在另一个屏幕上更改

Class Kivy-滑块类值在另一个屏幕上更改,class,slider,kivy,bind,Class,Slider,Kivy,Bind,我有一个滑块,它的值可以更改标签。这很容易理解。现在问题是我想用这个值在另一个屏幕上显示。最终,我希望滑块在另一个屏幕上显示1-16个图像,具体取决于滑块上选择的值。下面是我现在所拥有的,对于那个屏幕来说效果很好,但是我如何让这个值显示在另一个屏幕上呢?我知道我必须创建一个类,它进行了多次尝试,每一次尝试似乎都让我感到困惑,而不是更好地理解它 <NewGameScreen>: name: 'newgame' BoxLayout: orientation

我有一个滑块,它的值可以更改标签。这很容易理解。现在问题是我想用这个值在另一个屏幕上显示。最终,我希望滑块在另一个屏幕上显示1-16个图像,具体取决于滑块上选择的值。下面是我现在所拥有的,对于那个屏幕来说效果很好,但是我如何让这个值显示在另一个屏幕上呢?我知道我必须创建一个类,它进行了多次尝试,每一次尝试似乎都让我感到困惑,而不是更好地理解它

<NewGameScreen>:
    name: 'newgame'
    BoxLayout:
        orientation: 'vertical'
        height: 100       

        Label:
            text: 'New Game'
            font_size: 70
                Label:
                    text: 'Players'
                    font_size: 30
                    pos: 300, 400

                Slider:
                    id: s1
                    pos: 420, 400
                    width: '250dp'
                    min: 1
                    max: 16
                    step: 1
                    value: 1
                    on_value: s1.value = self.value

                Label:
                    text: '{}'.format(s1.value)
                    font_size: 30
                    pos: 670, 400
:
名称:“新游戏”
盒子布局:
方向:“垂直”
身高:100
标签:
文字:“新游戏”
字体大小:70
标签:
文字:“玩家”
字体大小:30
位置:300400
滑块:
id:s1
位置:420400
宽度:“250dp”
min:1
最高:16
步骤:1
价值:1
on_值:s1.value=self.value
标签:
文本:“{}”。格式(s1.value)
字体大小:30
位置:670400

您可以通过底层的
屏幕管理器传递值。一个有效的例子:

从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.screenmanager导入screenmanager,屏幕
kv='''
:
名称:“新游戏”
盒子布局:
方向:“垂直”
滑块:
id:s1
min:1
最高:16
步骤:1
价值:1
关于价值:
root.manager.get_screen('options').label.text=str(self.value)
按钮:
文本:“选项”
新闻界:
root.manager.transition.direction='left'
root.manager.current='options'
:
标签:标签
名称:“选项”
方向:“垂直”
盒子布局:
按钮:
文本:“返回”
新闻界:
root.manager.transition.direction='right'
root.manager.current='newgame'
标签:
id:标签
正文:“1”
'''
建筑商荷载(千伏)
类NewGameScreen(屏幕):
通过
课堂选项屏幕(屏幕):
通过
类TestApp(应用程序):
def生成(自):
sm=屏幕管理器()
sm.add_小部件(NewGameScreen())
sm.add_小部件(选项屏幕())
返回sm
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
TestApp().run()
更新: 扩展示例(基于滑块值添加按钮):

从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.button导入按钮
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.properties导入ObjectProperty
kv='''
#:导入标签kivy.uix.Label.Label
:
名称:“新游戏”
滑块:滑块
盒子布局:
方向:“垂直”
滑块:
id:滑块
min:1
最高:16
步骤:1
价值:1
on_值:root.update_按钮()
按钮:
文本:“选项”
新闻界:
root.manager.transition.direction='left'
root.manager.current='options'
:
布局:布局
名称:“选项”
盒子布局:
按钮:
文本:“返回”
新闻界:
root.manager.transition.direction='right'
root.manager.current='newgame'
盒子布局:
方向:“垂直”
id:布局
按钮:
案文:“1”
'''
建筑商荷载(千伏)
类NewGameScreen(屏幕):
slider=ObjectProperty(无)
def更新按钮(自身,*参数):
layout=self.manager.get_屏幕(“选项”).layout
layout.clear_widgets()
对于范围内的i(int(self.slider.value)):
layout.add_小部件(按钮(text=str(i+1)))
课堂选项屏幕(屏幕):
布局=对象属性(无)
类TestApp(应用程序):
def生成(自):
sm=屏幕管理器()
sm.add_小部件(NewGameScreen())
sm.add_小部件(选项屏幕())
返回sm
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
TestApp().run()

Ok,但如果我想让滑块上的值变成选项屏幕上的1-16个按钮,该怎么办?那么我可以把它作为一个值吗?但是谢谢你的演示和解释,真的很有帮助。我恐怕我不太明白你的意思。您能解释一下吗?所以滑块创建的值可以是1-16,将创建选项屏幕上显示的按钮数量。这将为游戏创建多少玩家,并希望“选项屏幕”显示网格布局和按钮,以便稍后选择其他选项。希望有帮助。另一件事是,滑块的值也将创建db,但这将在以后我获得更多值时进行experience@tunedin,我又加了一个例子。我希望这有帮助。