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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

3088閲覧

Kivy 複数のScrollViewのスクロール量を同期させたい。

kevin.c.michael

総合スコア27

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2017/12/08 11:29

編集2017/12/08 12:29

KivyのScrollViewが複数あったとして、それらのスクロール量を同期させるためのコードを書いているのですが、リアルタイムで同期するにはどのようなコードを書けば良いですか?
私のコードでは、下記のようにscroll_yを別なscrollviewに値を入れてますが、
こうすると、まずスクロールがおかしくなります。たどたどしいというか。
それに、タッチアップし、再度タッチしなければscroll_yが同期されません。

回答お願いします。

簡単なサンプルコードを追加しました。

python

1from kivy.app import App 2from kivy.lang import Builder 3from kivy.uix.scrollview import ScrollView 4from kivy.properties import ObjectProperty 5 6class Scroll_A(ScrollView): 7 scroll_b = ObjectProperty(None) 8 def on_scroll_move(self, touch): 9 self.scroll_b.scroll_y = self.scroll_y 10 11class Scroll_B(ScrollView): 12 def on_scroll_move(self, touch): 13 pass 14 15Mykv = ''' 16GridLayout: 17 cols: 2 18 spacing: 100, 100 19 padding: 50, 50, 50, 50 20 Scroll_A: 21 id: scroll_a 22 scroll_b: scroll_b 23 do_scroll_y: True 24 pos_hint: {'top': 1} 25 Label: 26 size_hint_y: None 27 text_size: self.width, None 28 color: 1,1,1,1 29 height: self.texture_size[1] 30 text: 'X' * 1000 31 Scroll_B: 32 id: scroll_b 33 do_scroll_y: True 34 pos_hint: {'top': 1} 35 Label: 36 size_hint_y: None 37 text_size: self.width, None 38 color: 1,1,1,1 39 height: self.texture_size[1] 40 text: 'Y' * 1000 41''' 42 43class MyApp(App): 44 45 def build(self): 46 return Builder.load_string(Mykv) 47 48if __name__ == '__main__': 49 MyApp().run()

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

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

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

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

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

guest

回答1

0

自己解決

解決しました。
すべてkvファイル内で行いました。
簡単でした。

python

1from kivy.app import App 2from kivy.lang import Builder 3from kivy.uix.scrollview import ScrollView 4from kivy.properties import ObjectProperty 5 6class Scroll_A(ScrollView): 7 scroll_b = ObjectProperty(None) 8 pass 9 10class Scroll_B(ScrollView): 11 pass 12 13Mykv = ''' 14GridLayout: 15 cols: 2 16 spacing: 100, 100 17 padding: 50, 50, 50, 50 18 Scroll_A: 19 id: scroll_a 20 scroll_b: scroll_b 21 do_scroll_y: False 22 scroll_y: self.scroll_b.scroll_y 23 pos_hint: {'top': 1} 24 Label: 25 size_hint_y: None 26 text_size: self.width, None 27 color: 1,1,1,1 28 height: self.texture_size[1] 29 text: 'X' * 10000 30 Scroll_B: 31 id: scroll_b 32 do_scroll_y: True 33 pos_hint: {'top': 1} 34 Label: 35 size_hint_y: None 36 text_size: self.width, None 37 color: 1,1,1,1 38 height: self.texture_size[1] 39 text: 'Y' * 10000 40''' 41 42class MyApp(App): 43 44 def build(self): 45 return Builder.load_string(Mykv) 46 47if __name__ == '__main__': 48 MyApp().run()

投稿2017/12/08 12:40

kevin.c.michael

総合スコア27

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問