2013-01-02 141 views
2

我有一個函數(如下所示),我使用彈出窗口和TextInput顯示一些文本,在大多數情況下,文本內容大於彈出窗口,因此需要滾動。沒有ScrollView我需要依靠鍵盤箭頭鍵進行滾動,我嘗試實現ScrollView,以便使用鼠標滾輪進行滾動。但問題是,它似乎沒有工作,對於這是爲什麼的任何想法?kivy ScrollView在TextInput中的實現

def dispPopup(display_text):                  
    root = ScrollView(size_hint=(0.8, 0.5)) 
    root.add_widget(TextInput(text= display_text, , size_hint=(0.8, 0.5))) 
    popup = Popup(title='Search Result', 
      content= root, size_hint=(0.8, 1), pos_hint={'right': 1}) 
    popup.open() 

感謝

回答

2

如果有一些滾動滾動型只會滾動。

您正在向ScrollView添加Textinput,但將Textinput的size_hint設置爲.8,.5(80%的寬度和50%的父級高度,即ScrollView)。所以沒有什麼可滾動的。

要垂直滾動,您應該將TextInput的寬度設置爲其父級滾動視圖的寬度,並且高度應設置爲較大值,ScrollView的高度或行* line_height的數量。

在千伏

::

ScrollView: 
    id: scrlv 
    TextInput: 
     text: disp_text 
     size_hint: 1, None 
     height: max((len(self._lines)+1) * self.line_height, scrlv.height) 

了TextInput將動態垂直增長取決於它的線或滾動視圖高度或字體大小的數目/風格這改變了line_height

更新::

啓動1.8.0你可以簡單地做::

height: max(self.minimum_height, scrlv.height) 
+0

謝謝,這工作,但我不得不添加size_hint_y:無檢測TextInput – Crust3

+0

是的,你需要size_hint_y設爲'沒有',我忘了提及你需要相應地設置size_hint。更新了答案中的示例以反映應如何使用size_hint。 –

+0

@ qua-non我正在嘗試爲多行textinput添加滾動條,但此代碼http://dpaste.com/hold/1281777/實際上是爲textinput對象提供滾動而不是其中的內容。任何建議如何使用滾動的textinput的內容? –