7

ポップアップと TextInput を使用してテキストを表示する関数 (以下に示す) があります。ほとんどの場合、テキスト コンテンツはポップアップ ウィンドウよりも大きいため、スクロールが必要です。ScrollView がないと、スクロールのためにキーボードの矢印キーに頼る必要があり、マウスホイールを使用してスクロールできるように 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()

ありがとう

4

1 に答える 1

11

ScrollView は、スクロールするものがある場合にのみスクロールします。

Textinput を ScrollView に追加していますが、Textinput の size_hint を .8、.5 (親の ScrollView の幅 80%、高さ 50%) に設定しています。したがって、スクロールするものは何もありません。

垂直方向にスクロールするには、TextInput の幅をその親 ScrollView の幅に設定し、高さを ScrollView の高さまたは行数 * line_height のいずれか大きい方に設定する必要があります。

kvで::

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)
于 2013-01-04T02:33:50.820 に答える