2017-06-21 83 views
0

我有一個GridLayout,帶有一個按鈕和一個圖像顯示在按鈕內部。當我運行我的應用程序時,按鈕中的圖像有時會居中,有時卻不會。爲什麼?我相信它應該始終以中心爲中心。Kivy-Image只集中在運行時的一些時間

.kv文件:

MyLayout: 
    cols: 2     
    height: self.minimum_height 
    pos: root.pos 

    Button: 
     size_hint_y: None 
     height: self.parent.width/2 
     Image: 
      source: 'Images/employee/userprofile.png' 
      size: self.parent.size 
      center_x: self.parent.center_x 
      center_y: self.parent.center_y 

下面的圖片是我期待每一個時間:

enter image description here

這是我得到有時: enter image description here

+0

你想調整圖像大小嗎?它是否應該擴展並填充整個按鈕? – FJSevilla

+0

我添加了我的意思。基本上在運行時,當我(我認爲)得到第一個結果時,我得到了這些結果中的任何一個。 – supreme

回答

1

這是一個別名屬性的常見問題,如center_xright,top等。在kv中設置它們不會自動綁定到窗口小部件的大小(將它添加到kivy並不像它聽起來那麼微不足道),所以當圖像首先被正確定位時,如果它在後面調整大小,那麼位置不更新,因爲父母的pos沒有改變,只有孩子的大小!幸運的是,在這種情況下,根據在特定運行中調度的時間,代碼似乎在一半時間內工作並不罕見。

無論如何,解決方案非常簡單,顯式引用綁定中的子級大小,因此每次更改表達式時都會重新計算表達式。

 center_x: self.width and self.parent.center_x 
     center_y: self.height and self.parent.center_y 
相關問題