from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.scatterlayout import ScatterLayout
class ZoomWidget(ScatterLayout):
def __init__(self, **kwargs):
super(ZoomWidget, self).__init__(**kwargs)
self.add_widget(Label(text='Label'))
def on_touch_down(self, touch):
if touch.is_double_tap:
button = Button(text='Button')
self.add_widget(button)
return True
else:
return super().on_touch_down(touch)
class ZoomSpaceApp(App):
def build(self):
return ZoomWidget()
if __name__ == '__main__':
ZoomSpaceApp().run()
を行い、ラベルが動作しているようですが、私は第2のタッチ位置を作成する(デスクトップOS上)を右クリックすることができ、その後、&はラベルを回転させるドラッグスケールを残しました。しかし、ボタンはレイアウト全体をいっぱいにしているように見えます。では、ScatterLayout内でLabelがデフォルトで動作するように、Buttonをどのように動作させるのですか?KivyのScatterLayoutに小さなボタンを追加するにはどうすればよいですか?ラベルは、自動の作品ボタンはそうではない
また、私は他のウィジェットを使って同様のことをしたいので、最も一般的な答えがあります。たとえば、レイアウトなど、いくつかのタイプのウィジェットでButtonをカプセル化しますか? ZoomWidgetに表示されるものは、他のウィジェットになります。私のアプリケーションのポイントは、ユーザーがタッチで独自のアプリケーションを作成し、そこに配置するものを決定することです(最初はコンテキストメニューを使用します)。それを知っている、これにアプローチするより良い方法はありますか?