- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码旨在显示两个 kivy slider 。第二个 slider 应与第一个 slider 一起移动(但不能相反)。我有课DoubleSlider
绑定(bind)完成的位置:
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
kivy.require('1.10.0')
Builder.load_string ("""
<Slider>
size_hint: 1, None
height: dp(40)
<DoubleSlider@BoxLayout>:
slider_1: slider_1
slider_2: slider_2
orientation: 'vertical'
Slider
id: slider_1
Slider
id: slider_2
value: slider_1.value
<UI>:
orientation: 'vertical'
DoubleSlider:
""")
class UI(BoxLayout):
pass
class MyApp(App):
def build(self):
return UI()
if __name__ == '__main__':
MyApp().run()
这是我找到的唯一解决方案(在 kvlang 中)。但是我无法使用它,显示的绑定(bind)只是一个示例。
实际上,我希望能够在具有数字属性的其他对象中使用第一个 slider 的位置(不是特定于同一 DoubleSlider
对象的第二个 slider ),这意味着我将通过以下方式进行绑定(bind)情况案例在<UI>
规则。所以我删除了行 value: slider_1.value
并尝试修改<UI>
规则如下:
<UI>:
DoubleSlider:
# Is expected to be equivalent, but doesn't work
slider_2.value: slider_1.value
我也尝试过使用 getter('value')
和setter('value')
没有效果。
问题:
我在 <UI>
做什么?在分配方面? (我担心我没有绑定(bind)任何内容,但我只是重新分配 slider_2
属性,因为 slider_2
本身就是一个属性,而不是常规引用)
绑定(bind) <UI>
中 slider 的正确方法是什么? ? (最好只使用 kv lang,除非这是不可能的)
最佳答案
如果您想在实例化期间修改绑定(bind),我不知道这是否是最佳选择,但您可以使用自定义属性。这还允许您在需要时取消绑定(bind):
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
kivy.require('1.10.0')
Builder.load_string ("""
<Slider>
size_hint: 1, None
height: dp(40)
<DoubleSlider@BoxLayout>:
tied: False # <<<<<<<<<<
slider_1: slider_1
slider_2: slider_2
orientation: 'vertical'
Slider
id: slider_1
Slider
id: slider_2
value: slider_1.value if root.tied else self.value
<UI>:
orientation: 'vertical'
BoxLayout:
Label:
text: "Tied"
CheckBox:
on_active: ds.tied = not ds.tied
DoubleSlider:
id: ds
""")
class UI(BoxLayout):
pass
class MyApp(App):
def build(self):
return UI()
if __name__ == '__main__':
MyApp().run()
<小时/>
编辑:
另一个选项是创建一个与 slider 的 value
属性关联的新属性,并使用 on_
语法:
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
kivy.require('1.10.0')
Builder.load_string ("""
<Slider>
size_hint: 1, None
height: dp(40)
<DoubleSlider@BoxLayout>:
slider_1: slider_1
slider_2: slider_2
value1: slider_1.value
value2: slider_2.value
orientation: 'vertical'
Slider
id: slider_1
Slider
id: slider_2
<UI>:
orientation: 'vertical'
DoubleSlider:
on_value1: self.slider_2.value = self.value1
""")
class UI(BoxLayout):
pass
class MyApp(App):
def build(self):
return UI()
if __name__ == '__main__':
MyApp().run()
关于python - kv语言如何绑定(bind)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48042935/
完美的功能代码: from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import S
我尝试使用 kv_t 存储一些数据但没有成功。我也尝试过例子forum.c & kv.c。当尝试创建第二个论坛线程时,forum.c 挂起,而 kv.c 崩溃。 当我向 kv 添加 1 个项目时,kv
my %hash = two => 2, three => 3, one => 1, ; for %hash.sort(*.key)>>.kv -> ($key, $v
我正在尝试输出同一个键的 SUM 和 COUNT 。例如。给定一个包含数百万个飞机延误事件的 .csv。使用 Apache Beam (Java),我想对每架飞机的延误持续时间进行求和,并计算每架飞机
我在 Consul 上存储了这些 KV 源: config/books/ config/common/ 在我的 Spring Boot 应用程序 application.yml 中,我将其配置如下:
所以我只是使用一些示例 Kivy 文件代码,我遇到了这段允许用户在屏幕之间切换的代码: from kivy.app import App from kivy.lang import Builder f
我一辈子都想不出如何通过 KV 文件在自定义小部件上传递自定义属性。我的应用程序是一个包含 Button() 和 TestWidget() 的简单网格。 TestWidget() 有一个 String
我希望在 Kivy 中使用 SVG,但我更喜欢在 kv 文件中使用,而不是在 py 程序中。但是,当我尝试诸如 Widget: canvas.before: Svg:
我想提取网址查询参数,并且按照this forum answer的要求,我可以使用kv {} 但我想了解这是如何工作的。 这是我的字符串:param1=val1¶m2=val2&adv=val
我的 Kivy 语言文件有许多 font_size 属性,所有属性都具有相同的值,是否可以在 KV lang 中分配变量? 当前 KV 文件示例: #User ID Label:
我有一个应用程序,其固定标题中带有三个切换按钮,该标题是屏幕管理器的外部缩进布局。初始化时,导入屏幕必须显示,即 self.ids.scrn_man.current = 'import_scn",按下
我遇到了与本主题 kv incorrect 中所述相同的问题.当我使用 Builder 并加载 kv 文件时,我有正常工作的应用程序。但是当我尝试使用自动加载 kv 文件时,我只有黑屏。有人可以向我解
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试将我的小部件创建转移到 .kv 而不是我的 main.py。我怎样才能仍然引用我的 on_press 命令? painter 是另一个子部件,包含我想调用的函数,但是我不确定如何从 .kv
一直在查看文档,但找不到如何在 kv 中正确屏蔽图像。这是我的 kv 代码: : source: 'http://webserver/120x100.png' canvas.befor
我有我的 python 代码: from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label im
我似乎无法为一个简单的应用程序设置背景图像。我是 kivy 的新手,对 python 有点陌生。这看起来很简单,但我发现所有示例都在 .py 文件中使用 kv 语言,而不是我想学习如何使用的 .kv
我的程序的一部分涉及用户输入自己的文本。我想要一个标签更改为输入的值,该值将存储在全局变量中。 基本上发生了什么 chosen = StringProperty() : BoxLayout:
我正在学习编写 Kivy 应用程序。我创建了一个由两个网格布局组成的玩具应用程序。一个包含两个按钮,另一个包含两个标签。任务是在单击按钮时修改标签。当所有布局都在同一个 .kv 文件中时,我可以通过简
我注意到我在网上找到的大多数示例都没有外部 .kv 文件。他们在内部定义所有实例。然而他们也说拥有外部 .kv 文件是一个很好的做法。做什么比较好?如果拥有外部 .kv 文件更好,那么我应该如何使用使
我是一名优秀的程序员,十分优秀!