2017-07-19 1 views
2

私はKivyを使って45RPMレコードの画像を回転させたいと思います。私はこれがスキャターレイアウト上のイメージウィジェットを使って実行できることを発見しました。しかし、私は、45RPMレコードのイメージをウィンドウのサイズに合わせてサイズ変更するコードを見つけることはできません。私は何時間もコードを繰り返し試してきましたが、私はかなり不満を感じました。下のフルコードは画像へのリンクです。Kivy Image Widgetスキャッタレイアウト:イメージサイズを大きくするにはどうすればよいですか?

何か提案がありますか?事前におくる

....ブラッド....で、コードの

画像:https://drive.google.com/open?id=0B-T2cvsAoZ2vQ2hmaHM0SnlQVlU

# Modified from https://gist.github.com/tshirtman/6222891 
from kivy.app import App 
from kivy.properties import NumericProperty 
from kivy.lang import Builder 
from kivy.clock import Clock 

kv = """ 
BoxLayout: 
    Widget: 
     Scatter: 
      center: self.parent.center 
      do_rotation: False 
      do_translation: False 
      do_scale: False 
      rotation: app.angle 
      Image: 
       source: '45rpm.png'    
""" 
class RotateRecordApp(App): 
    angle = NumericProperty(0) 
    def build(self): 
     Clock.schedule_interval(self.update_angle, 0) 
     return Builder.load_string(kv) 

    def update_angle(self, dt, *args): 
     self.angle += dt * 100 

if __name__ == '__main__': 
    RotateRecordApp().run() 

答えて

0

使用scaleプロパティ:

# Modified from https://gist.github.com/tshirtman/6222891 
from kivy.app import App 
from kivy.properties import NumericProperty 
from kivy.lang import Builder 
from kivy.clock import Clock 

kv = """ 
BoxLayout: 
    Widget: 
     # Gray background 
     canvas.before: 
      Color: 
       rgba: 0.1, 0.1, 0.1, 1 
      Rectangle: 
       pos: self.pos 
       size: self.size 

     Scatter: 
      center: self.parent.center 
      do_rotation: False 
      do_translation: False 
      do_scale: False 
      rotation: app.angle 
      scale: min(self.parent.width/self.width,\ 
         self.parent.height/self.height) 
      Image: 
       source: '45rpm.png'    
""" 
class RotateRecordApp(App): 
    angle = NumericProperty(0) 
    def build(self): 
     Clock.schedule_interval(self.update_angle, 0) 
     return Builder.load_string(kv) 

    def update_angle(self, dt, *args): 
     self.angle += dt * 100 

if __name__ == '__main__': 
    RotateRecordApp().run() 

出力:

enter image description here

私は画像の視認性を向上させるためにグレーの背景を追加しました。

関連する問題