2016-11-26 7 views
0

Скажите, пожалуйста, почему это не работает, вся программа работает нормально, она использует функцию внутри основной программы, чтобы получить ее текст, но она не будет прокручиваться, поэтому пользователь не будет возможность просмотра всего вывода.GridLayout Не прокрутка в Kivy

<[email protected]>: 
    input_textb: input_textb 
    ScrollView: 
     size_hint: (1, None) 
     do_scroll_y: True 
     do_scroll_x: False 
     bar_width: 4 
     GridLayout: 
      padding: root.width * 0.02, root.height * 0.02 
      cols: 1 
      size_hint_y: None 
      size_hint_x: 1 
      height: self.minimum_height 
      Label: 
       id: input_textb 
       text: "" 
       font_size: root.height/25 
       text_size: self.width, None 

Edit:

  • Я уже пытался сделать то же самое, как многие предыдущие ответы, в частности, один упомянутый в комментариях, я получил сообщение об ошибке сказав «NoneType» не имеет атрибута «привязки» ,
  • Я удалил подсказку размера, она все еще не работает, но спасибо в любом случае.
  • Текст определенно достаточно длинный.
+1

Возможный дубликат [Как вы просматриваете GridLayout внутри Kivy ScrollView?] (Http://stackoverflow.com/questions/26686631/how-do-you-scroll-a-gridlayout-inside-kivy-scrollview) – mutantkeyboard

+0

Почему вы установили ScrollView size_hint_y в None? Попробуйте удалить эту строку. – inclement

+1

Кроме того, я предполагаю, что текст ярлыка задан длинным - в этом примере GridLayout не будет достаточно большим для прокрутки. – inclement

ответ

1

Я считаю, что размер лейбла не установлен, что я согласен может быть запутанным на первый, Этикетка имеет размер виджета (size как все виджеты) и texture_size, который устанавливается на фактический размер отображаемого текста , kivy не связывает эти два в каком-либо конкретном ключе вначале, и вам решать, как один влияет на другого, вы сделали половину работы в настройке text_size до (width, None), что заставляет текстуру иметь ширину виджет, но вам не хватает другой части сделки, которая заключается в том, что вы хотите, чтобы виджет был таким же высоким, как сгенерированная текстура. Чтобы этот размер был эффективным, вам также необходимо отключить size_hint_y для Label, так как он находится в GridLayout.

 Label: 
      id: input_textb 
      text: "" 
      font_size: root.height/25 
      text_size: self.width, None 
      height: self.texture_size[1] 
      size_hint_y: None 

и все должно быть установлено.

Смежные вопросы