別のウィジェットでマウスをクリックしたときに、テキスト入力ボックスを新しいテキストでリセットしようとしていますが、これを実現する方法がよくわかりません。私は多くの方法でコードを変更しようとしましたが、明らかに私がやっていることではありません。これが私が使用しているコードです: ここまで私を導いてくれた inclement と qua-non に感謝します
Builder.load_string('''
<MouseWidget>:
image: image
label: label
orientation: 'vertical'
Image:
id: image
source: root.source
Label:
id: label
size_hint_y: None
height: 50
text: 'Hello World'
''')
class Test(TextInput):
def on_double_tap(self):
# make sure it performs it's original function
super(Test, self).on_double_tap()
def on_word_selection(*l):
selected_word = self.selection_text
print selected_word
# let the word be selected wait for
# next frame and get the selected word
Clock.schedule_once(on_word_selection)
class MouseWidget(BoxLayout):
image = ObjectProperty()
label = ObjectProperty()
source = StringProperty()
この定義では、マウスが画像をクリックするたびに、AccordianAPP で作成され、TEST を介して新しいテキストで送信されるテキスト入力ボックスを更新したいと考えています。
def on_touch_down(self, touch):
if self.image.collide_point(*touch.pos):
self.label.text = str(touch.pos)
def on_touch_up(self, touch):
self.label.text = 'Hello World'
class AccordianApp(App):
def build(self):
root = Accordion(orientation='horizontal')
item= AccordionItem(title='Page One')
src = "image.png"
image = MouseWidget(source=src, size_hint = (1.0, 1.0))
これは、画像をクリックしたときに text="" を別のものにリセットしたい textinput です
textinput = Test(text='Testing', size_hint = (0.5, 1.0))
# add image to AccordionItem
item.add_widget(image)
item.add_widget(textinput)
root.add_widget(item)
return root
if __name__ == '__main__':
AccordianApp().run()
助けてくれてありがとう