>source

저는 python kivy로 앱을 만들고 있으며 "TacScreen"에 드래그 가능한 이미지가 있으므로 드래그 가능한 이미지를 두 번 탭할 때마다 팝업이 열리고 팝업 안에 텍스트 입력 필드와 버튼이 있습니다. . 지금은 "릴리스" 버튼을 누르면 팝업이 닫힙니다. 내가하려는 것은 TextInput 필드에 어떤 텍스트를 입력하든 버튼을 누를 때 해당 텍스트를 드래그 가능한 이미지 아래에 배치하는 것입니다. 어떻게 할 수 있습니까? 아래는 내 code입니다. 감사 해요!

메인.py

class DragImage(DragBehavior, Image):
    def on_touch_up(self, touch):
        uid= self._get_uid()
        if uid in touch.ud:
            print(self.source, 'dropped at', touch.x, touch.y)
        return super(DragImage, self).on_touch_up(touch)
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos) and touch.is_double_tap:
                print('this is a double tap')
                layout= GridLayout(cols=1, row_force_default=True, row_default_height=30,
                                    spacing=80)
                popuptextinput= TextInput(hint_text='Name',
                                           multiline=False,
                                           background_color='blue',
                                           halign='left',
                                           cursor_blink=True,
                                           cursor_color='white',
                                           foreground_color='white',
                                           font_size='14')
                closebutton= Button(text="SAVE", background_color="black", font_size="14",
                                     font_name='Sackersz.otf')
                layout.add_widget(popuptextinput)
                layout.add_widget(closebutton)
                popup= Popup(title='ADD NAME',
                              title_color="white",
                              separator_color="black",
                              title_align="center",
                              separator_height="0dp",
                              background_color="red",
                              title_font="Fontyh.otf",
                              title_size="10",
                              content=layout,
                              size_hint_y=.6,
                              size_hint_x=.7)
                popup.open()
                closebutton.bind(on_release=popup.dismiss)
        return super(DragImage, self).on_touch_down(touch)
class TacScreen(Screen):
    pass
class MainApp(App):
    def build(self):
        return Builder.load_string(kv)
MainApp().run()

내 .kv

kv= '''
<DragImage>:
    drag_rectangle: self.center[0] -self.norm_image_size[0]/6, self.center[1] -
        self.norm_image_size[1]/6, \
        self.norm_image_size[0]/3, self.norm_image_size[1]/3
    drag_timeout: 10000000
    drag_distance: 0
<TacScreen>:
#:import utils kivy.utils
DragImage
    id: name
    pos: 0, 102
    size_hint: 1, .1
    source: "person.png"
'''

@John Anderson, 나는 이것에 대한 해결책을 찾으려고 노력했지만 아무 것도 찾지 못한 것 같습니다. 제발 날 좀 도와 줄 수 있니?

user177647742022-01-15 10:27:13

다른 위젯에 입력된 텍스트의 텍스트를 표시하시겠습니까? (예: 이미지 아래의 레이블)

Edher Carbajal2022-01-15 10:27:13

@EdherCarbajal, 네 완벽할 거에요. 라벨도 같이 드래그하면 이미지를 드래그할 때 더 좋을 것 같아요. 정말 감사합니다.

user177647742022-01-14 20:25:49

@John Anderson, 이것 좀 도와주시겠습니까?

user177647742022-01-15 01:12:47
  • 이전 multithreading : Scala3, "foreach, map, reduce" 병렬 실행을 위한 멀티스레딩 기능 구현
  • 다음 delphi : 델파이 base45/zlib/cbor/cose 문제