ScatterLayout - do_translation çalışmıyor
Nov 03 2020
Kodum
import kivy
from kivy.uix.scatterlayout import ScatterLayout
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
class MyScatter(ScatterLayout):
def __init__(self, *args, **kwargs):
super(MyScatter, self).__init__(*args, **kwargs)
self.img = Image(source='img.png', keep_ratio=True, center = self.center)
self.add_widget(self.img)
class MainApp(App):
def build(self):
mainbox = FloatLayout()
mainbox.add_widget(Button(text="Prev",
font_size="17dp",
size_hint=(.15, .15),
pos_hint={"left":1,
"center_y":0.5},
))
ms = MyScatter(scale=1, pos_hint={"center_x":0.33, "center_y":0.5}, do_scale = True, do_rotation = False, do_translation = True)
mainbox.add_widget(ms)
return mainbox
root = MainApp()
root.run()
Düğme ve görüntünün konumları ihtiyaçlarıma göre. Ama ben do_translation= True için tanımladım MyScatterve çalışmıyor.
Yanıtlar
xralf Nov 03 2020 at 03:24
Buradan ilham aldım ve şu kodu yazdım:
import kivy
from kivy.uix.scatterlayout import ScatterLayout
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
class MyScatter(ScatterLayout):
def __init__(self, *args, **kwargs):
super(MyScatter, self).__init__(*args, **kwargs)
self.img = Image(source='img.png', keep_ratio=True, pos_hint={"center_x":0.33, "center_y":0.5})
self.add_widget(self.img)
def on_touch_move(self, touch): #magic time!!!!
res = super(MyScatter, self).on_touch_move(touch)
if res: #Yay do something!
self.img.pos = (self.center_x, self.center_y)
return res
class MainApp(App):
def build(self):
mainbox = FloatLayout()
mainbox.add_widget(Button(text="Prev",
font_size="17dp",
size_hint=(.15, .15),
pos_hint={"left":1,
"center_y":0.5},
))
ms = MyScatter(scale=1, do_scale = True, do_rotation = False, do_translation = True)
mainbox.add_widget(ms)
return mainbox
root = MainApp()
root.run()
İşe yarıyor gibi görünüyor. Lütfen iyi bir çözüm olup olmadığını bana bildirin.
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'