2013-01-02 3 views
2

저는 팝업과 TextInput을 사용하여 텍스트를 표시하는 기능이 있으며 대부분의 경우 텍스트 내용이 팝업 창보다 커서 스크롤의 필요성이 커집니다. ScrollView를 사용하지 않으면 키보드 화살표 키를 사용하여 스크롤해야하며 ScrollView를 구현하여 마우스 휠을 사용하여 스크롤 할 수 있습니다. 그러나 문제는 그것이 작동하지 않는 것인가, 왜 그런지에 대한 아이디어입니까?kivy TextInput의 ScrollView 구현

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을 ScrollView에 추가하지만 Textinput의 size_hint를 .8, 0.5 (텍스트의 너비 80 %, 높이 50 % (ScrollView))로 설정합니다. 그래서 스크롤 할 것이 없습니다.

세로로 스크롤하려면 TextInput의 너비를 부모 ScrollView의 너비로 설정하고 높이를 ScrollView의 높이 또는 줄 * line_height의 너비 중 큰 값으로 설정해야합니다. KV에서

::의 TextInput 동적 line_height 변경 그것에 선이나있는 ScrollView 높이 수나 글꼴 크기/스타일에 따라 수직으로 성장할 것입니다

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

.

업데이트 ::

당신이 간단하게 할 수있는 ::

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

감사 1.8.0을 시작했다하지만 난 size_hint_y 추가하지했다 그 다음의 TextInput – Crust3

+0

에 대한 없음 예는에 size_hint_y를 설정해야 'None', size_hint를 적절하게 설정해야한다는 것을 잊어 버렸습니다. size_hint가 어떻게 사용되어야 하는지를 반영하기 위해 답안의 예제를 업데이트했습니다. –

+0

@ qua-non 나는 여러 줄 textinput에 대한 스크롤러를 추가하려하지만이 코드 http://dpaste.com/hold/1281777/는 실제로 안에있는 내용이 아닌 textinput 객체에 대한 스크롤을 제공합니다. 어떤 제안을 어떻게 scrollin을 textinput의 내용으로 사용할 수 있습니까? –