我曾尝试将一个代码.py转录到.py-.kv,但都没有成功,我所达到的最大效果是看到屏幕和组件,但没有执行我所需要的基本功能。我已经在网上搜索了好几个星期了,但是我发现的东西对我没有任何帮助,我非常感谢大家对我的支持。你知道吗
原始代码来自此网站(代码#7“复选框列表”示例):
https://www.reddit.com/r/kivy/wiki/snippets#wiki_checkbox_list
它是四个“TextCheckBox”,功能是“按”在小部件中显示所做的选择:
'请进行选择。'
'您选择:软件'(如果您只选择一项)
'您选择:软件,硬件'(如果您同时选择这两项)
我澄清一下,ninjaide不接受在.py和.kv中使用的原始代码的“active”一词,我不得不将其改为“on theu press”。你知道吗
我只看到了小部件,我可以在两个TextCheckBox中进行选择,但是显示所选内容的功能没有实现。你知道吗
Código.py公司:
from kivy.app import App
from kivy.lang import Builder
from kivy.clock import Clock
from kivy.factory import Factory
Builder.load_file('ejemplo.kv')
class CheckBoxList(Factory.BoxLayout):
values = Factory.ListProperty()
def __init__(self, **kwargs):
self._trigger = Clock.create_trigger(self._do_update)
super(CheckBoxList, self).__init__(**kwargs)
self.bind(x=self._trigger, y=self._trigger)
def add_widget(self, widget, index=0):
super(CheckBoxList, self).add_widget(widget, index=index)
widget.bind(on_press=self._trigger)
def remove_widget(self, widget):
super(CheckBoxList, self).remove_widget(widget)
widget.unbind(on_press=self._trigger)
def _do_update(self, *largs):
self.values = [tcb.text for tcb in self.children if tcb.on_press]
class TextCheckBox(Factory.ButtonBehavior, Factory.BoxLayout):
text = Factory.StringProperty()
on_press = Factory.BooleanProperty(False)
class MyApp(App):
def build(self):
return CheckBoxList()
if __name__ == '__main__':
MyApp().run()
。。。。。。。。。。。。。。。。。。。。。。。。。。。你知道吗
código.千伏:
<CheckBoxList>:
id: cblist
TextCheckBox:
text: 'Software'
TextCheckBox:
text: 'Hardware'
BoxLayout:
orientation: 'horizontal'
width: 500
size_hint: None, None
pos_hint:{'center_x':.1,'center_y':.50}
Label:
text: cblist.values and 'You Selected: {}'.format( ', '.join(cblist.values)) or 'Please make selection.'
<TextCheckBox>:
orientation: 'horizontal'
on_press: cb.on_press
on_press: root.on_press= not root.on_press
CheckBox:
id: cb
on_press: root.on_press
Label:
id: lbl
text: root.text
预期结果是.py-.kv代码显示从一个或两个TextCheckBox选项中所做的选择。你知道吗
目前我还没有收到这个问题的答案,但我已经找到了另一个可能的解决方案,使用不同的代码,这是所需的一部分,尽管这是一个很好的部分解决方案。你知道吗
我有两个屏幕:在“主屏幕”有一个按钮,指向“屏幕2”,已经在那里,我可以选择一个或几个选项的四个“复选框”,然后按下按钮“Aceptar”所作的选择,这反过来是立即打印在同一屏幕上,然后按第二个按钮“Volver”返回到屏幕初始屏幕“主屏幕”。你知道吗
缺少的是,所做的选择也会在第一个“主屏幕”中更新。你知道吗
我已经搜索了好几个星期了,我找到并实现的所有代码对我来说都不起作用;我总是在类家长和孩子之间出现属性错误问题。你知道吗
如果我没有得到答案,我想我会尝试在一个类中实现我的项目,并将功能集中在.kv文件中,以便能够完成我所需要的工作,而不会因为类之间不可访问的属性权限而使事情复杂化。你知道吗
接下来,我将与大家分享我制作的,并且我已经对它们进行了注释的.py和.kv代码,以便它们能够在PC中进行验证,以防有人想要输入一个可能的解决方案。你知道吗
非常感谢。你知道吗
.py公司
千伏
还没有人回答我的问题,但我仍在推进我的项目,正如我之前提到的,我修改了代码以使用更多的.kv文件,现在我有了主屏幕和辅助屏幕。你知道吗
该项目是关于一个年鉴,12个月,每个月30天,其想法是,用户有一个全球视野的后续行动,他的活动一年在一个单一的看法。你知道吗
在屏幕“main”中,日历的每个按钮代表一天(365个按钮),每个按钮指向另一个屏幕(1、2、3、…、365),其中有四个“复选框”,显示用字母(R、F、C、T)标识的活动,可以按任何顺序和数量单独或分组选择,例如:R,RC、RFT、RFCT。你知道吗
我们还有三个按钮(Accept,Clean,Return);我用“Accept”将选中的“CheckBox”发送到屏幕“main”,然后用“Return”按钮返回到“main”,我可以看到我所做选择的数据;用“Clean”按钮我可以删除之前所做的选择,当我按“Back”按钮时,我会发现那天没有任何数据,完全干净,如果我想我可以再次进入,并作出不同的选择。你知道吗
缺少的是,我已经在主屏幕或“main”中进行了选择,我可以将其保存在备份中,这样当我关闭应用程序时,数据不会被删除,这样当我再次打开它时,它们将在我使用应用程序期间所选的每一天出现。你知道吗
另一方面,缺少的是,在选定选项的日子里,字母的颜色根据复选框的每个选择而定。你知道吗
接下来,我将分享我已经意识到的代码.py和.kv,并且我已经对它们进行了注释,以便您可以在您的PC中验证它,以防有人想要找到可能的解决方案;我必须指出,接下来的代码的最小表达式仅为一个月(一月)和四天(1、2、3、4),因为整个一年都是很多代码直接发布在这个网站上。你知道吗
在我向您展示最小化的代码之前,我给您留下了当您有一整年的时间来了解项目时的图像:
Screen "main" with 365 buttons, that is, 365 days, of which only the first four are directed to the second screen, for the minimized example that I expose.
Screen "1" with the four options to select, you can see the buttons " Aceptar ", " Limpiar " and " Volver ".
Screen "1" with the four options selected and other three examples.
Screen "main" with the selections made shown on days 1, 2, 3 and 4.
非常感谢。你知道吗
我用的是kivy ver。1.11.1概述
代码.py
代码kv
相关问题 更多 >
编程相关推荐