質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

593閲覧

ScrollViewがkvファイルだとうまくいかない kivy

mandapink

総合スコア7

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/10 08:37

ScrollViewを試していたのですが
なかなかサイトの通りにやってもうまく表示されず
pythonで雄一うまくいったのが以下のコードでした

python

1class MyApp(App): 2 def boo(self,instance): 3 print("aaaaaaaaaaaaaa"+instance.text) 4 def build(self): 5 6 layout = BoxLayout(size_hint=(1, None)) 7 layout.orientation = 'vertical' 8 9 layout.bind(minimum_height=layout.setter('height')) 10 for i in range(30): 11 data = 'test' + str(i) 12 btn = Button(text=data, height=30, size_hint=(1, None), on_press=self.boo) 13 layout.add_widget(btn) 14 15 root = ScrollView(size_hint=(1, None), size=( 16 Window.width, Window.height)) 17 18 root.add_widget(layout) 19 20 return root 21"""

しかしkvファイルのほうでScrollViewを書きたいのですがうまくいきません
kvファイルでは何が原因でおかしくなっているのでしょうか?

症状は下にボタンが一個表示されるのみです 一切スクロースされません

自分なりにkvにしたコード

kv

1<MainScreen>: 2 BoxLayout: 3 ScrollView: 4 size_hint:(1, None) 5 BoxLayout: 6 size_hint_y: None 7 orientation: "vertical" 8 Label: 9 size_hint_y: None 10 text: "1111" 11 height: 500 12 Button: 13 size_hint_y: None 14 text: "2222" 15 Label: 16 size_hint_y: None 17 text: "3333" 18 height: 200 19 Button: 20 size_hint_y: None 21 text: "4444" 22 height: 300 23 Label: 24 size_hint_y: None 25 text: "1111" 26 height: 500 27 Button: 28 size_hint_y: None 29 text: "2222" 30 Label: 31 size_hint_y: None 32 text: "3333" 33 height: 200 34 Button: 35 size_hint_y: None 36 text: "4444" 37 height: 300

python

1class MainScreen(BoxLayout): 2 pass 3 4Builder.load_file('scr.kv') 5 6class MyApp(App): 7 8 def build(self): 9 10 self.title = 'テスト' 11 return MainScreen()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

layout.bind(minimum_height=layout.setter('height'))にあたるコードがKv言語の方に無いので

yaml

1<MainScreen>: 2 BoxLayout: 3 ScrollView: 4 size_hint:(1, None) # <- この行は不要なので消す 5 BoxLayout: 6 size_hint_y: None 7 height: self.minimum_height # <- この行を加える 8 orientation: "vertical" 9 . 10 .

といった風に加えてあげてください。

それと載せるコードはコピペするだけで動く状態の物が好ましいですね。import文が省かれていて実行できなかったので。

投稿2022/06/11 00:32

gottadiveintopy

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問