0

別のウィジェットでマウスをクリックしたときに、テキスト入力ボックスを新しいテキストでリセットしようとしていますが、これを実現する方法がよくわかりません。私は多くの方法でコードを変更しようとしましたが、明らかに私がやっていることではありません。これが私が使用しているコードです: ここまで私を導いてくれた 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()

助けてくれてありがとう

4

1 に答える 1