每次使用鼠标按下屏幕时,都无法在布局中添加和显示图像。
class Myszka(ClickAndGo, Widget):
def on_touch_down(self, touch):
super().build()
flaga_path = os.path.join(self.img_path, "test.png")
x, y = touch.pos
self.flaga = Image(source=flaga_path, size_hint=(None, None), size=(64, 64),
pos=(round(x, 1), round(y, 1)))
self.camlayout.add_widget(self.flaga)
print(touch.pos)
答案 0 :(得分:0)
@ikolim
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
class ClickAndGo(App):
def build(self):
self.camlayout = FloatLayout(size=(100,100))
self.myszka = Myszka()
self.camlayout.add_widget(self.myszka)
return self.camlayout
class Myszka(ClickAndGo, Widget):
def on_touch_down(self, touch):
super().build()
# test.png -> any image
flaga_path = os.path.join(self.img_path, "test.png")
x, y = touch.pos
self.flaga = Image(source=flaga_path, size_hint=(None, None), size=(64, 64),
pos=(round(x, 1), round(y, 1)))
self.camlayout.add_widget(self.flaga)
print(touch.pos)
答案 1 :(得分:0)
我每次在布局中添加和显示图像时遇到问题 我用鼠标按屏幕。
由于在self.camlayout
的方法on_touch_down()
的{{1}}中添加了局部属性,因此未显示该图像。
将class Myszka()
替换为self.camlayout.add_widget(self.flaga)
,即获取根实例(App.get_running_app().root.add_widget(self.flaga)
)。
camlayout
以下示例说明了在class Myszka(Widget):
def on_touch_down(self, touch):
...
App.get_running_app().root.add_widget(self.flaga)
上单击鼠标的位置添加Image
。
FloatLayout