问题很简单,但我不知道如何在Kivy解决。 我有一些数据,如:代码,名称,地址,护照等。 我喜欢在listview这样的小部件中只显示名称(可以重复),但是当选择名称时,我想知道哪个代码与它相关。
感谢' S
答案 0 :(得分:0)
我有一个带有gridlayout的workarround(可能是一个盒子但是......)这里是代码:
while not fin:
texto = dataSwitch.GetCampo("RCONS", "DIRECCION")
codigo = dataSwitch.GetCampo("RCONS", "CODIGO")
label = Label(text = texto)
label.codigo = codigo
label.seleccionable = True
label.seleccionado = False
self.g_consorcios.add_widget(label)
if not dataSwitch.MoveCursor("RCONS"):
fin = True
在标签中我已经放置了我需要的所有内容,然后我需要获取触摸的标签并调用方法在此调用案例中进行选择on_press_algo
def on_touch_down(self, touch):
ret = super(ConsorciosScreen, self).on_touch_down(touch)
if ret:
x2, y2 = self.g_consorcios.parent.to_local(touch.x, touch.y)
for node in self.g_consorcios.children:
if node.collide_point(x2, y2):
self.savex = x2
self.savey = y2
self.savenode = node
ret = True
return ret
def on_touch_up(self, touch):
ret = super(ConsorciosScreen, self).on_touch_up(touch);
if ret:
for node in self.g_consorcios.children:
x2, y2 = self.g_consorcios.parent.to_local(touch.x, touch.y)
if node.collide_point(x2, y2):
if node == self.savenode:
if x2 <= self.savex + 10 and x2 >= self.savex - 10 and y2 <= self.savey + 10 and y2 >= self.savey - 10:
self.on_press_algo(node)
ret = True
return ret;
最后在on_press_algo中我假装选择并且瞧,我在nodo中有我的数据。
if hasattr(nodo, "seleccionable"):
if nodo.seleccionado:
nodo.seleccionado = False
nodo.color = (1,1,1,1)
else:
for node in self.g_consorcios.children:
if hasattr(node, "seleccionable"):
node.color = (1,1,1,1)
node.seleccionado = False
nodo.seleccionado = True
nodo.color = (1,0,0,1)