2015-07-03 84 views
0

我有很多代碼對於這個問題並不重要,所以我只會解釋我的小部件樹是如何構建的。訪問根部件的父項--kivy

我有兩個屏幕和不同的佈局,按鈕和小部件。基本上是這樣的:

ScreenManager: 
    Screen1: 
    Screen2: 
     FloatLayout: 
      Button1 
      Button2 
      Button3 
      Widget1 
      Widget2: 
       Label: 
        text: 
        pos: root.width*0.8, root.height*0.8 

我要放置一個Widget,因爲我將增加更多的標籤,它的內部標籤,但不知道如何訪問畫面2的寬度。如果我使用root.width,我得到父窗口小部件的寬度小於窗口,並且不能使用它的比率。我試圖訪問window.width,但它給我一個ID錯誤。

如果有人會解釋我如何通過ID訪問不同的父母,我將不勝感激。謝謝!

+0

我認爲你應該這樣做:'root.parent.parent.parent ..... width'使用父級,直到到達所需的小部件。 – kiok46

+0

使用Screen2的ID – fins

回答

2

要回答你直接問:

ScreenManager: 
    Screen1: 
    Screen2: 
     id: screen2 
     FloatLayout: 
      Button1 
      Button2 
      Button3 
      Widget1 
      Widget2: 
       Label: 
        text: 
        pos: screen2.width*0.8, screen2.height*0.8 

但是,它可能會更好地使用佈局類,以避免手動指定這個東西。