2017-05-26 44 views
0

如何使圖像始終位於橢圓部件的中心?Kivy - 橢圓部件中的中心圖像

以下是.py和.kv文件以及執行代碼結果的屏幕。

我已經嘗試了很多方法,我無法做到。有人可以幫我解決這個問題嗎?

fab.py

from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.core.window import Window 
Window.clearcolor = (1, 1, 1, 1) 

class Fab(App): 
    pass 

Fab().run() 

fab.kv

Widget: 
    canvas: 
     Color: 
      rgba: 0, 1, 0, 1 
     Ellipse: 
      pos: self.pos 
      size: (dp(48), dp(48)) 
    Scatter: 
     rotation: 45 
     Image: 
      source: 'plus.png' 
      size: 64,64 

enter image description here

回答

1

那麼,原因之一是很難做到這一點簡單的東西是因爲你不使用特定的小部件來保持你的形狀。我真的建議你這樣做,因爲那樣你可以使用小部件的center_xcenter_y屬性。因此,使小部件的大小和位置與您想要的形狀相同,然後將小部件本身移動。注意:

Widget: 
    Widget: # create a specific widget for the ellipse 
     id: ellipse # give an id so we can refer to this widget 
     size: (dp(48), dp(48)) 
     canvas: 
      Color: 
       rgba: 0, 1, 0, 1 
      Ellipse: 
      pos: self.pos 
      size: self.size 

    Scatter: 
     size: (dp(48), dp(48)) 
     rotation: 45 
     center_x: ellipse.center_x # refer to the ellipse 
     center_y: ellipse.center_y 
     Image: 
      source: 'plus.png' 

如果你真的需要你的圖像旋轉,它不是使用分散最好的主意(你可以拖動加上橢圓遠,例如)。考慮this線程。

+0

Edvardas Dlugauskas謝謝你的幫助! – rafaelcb21

+0

對不起,我忽略了一個事實。請參閱代碼,現在有點不同了。 –