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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

Q&A

解決済

1回答

2519閲覧

[python2.7][kivy] 別ディレクトリから画像を呼び出し&並べて表示

night9071

総合スコア13

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

0グッド

0クリップ

投稿2017/11/29 01:58

編集2017/11/29 01:58

###前提・実現したいこと
現在、別ディレクトリにある画像の表示を全て手入力で行なっています。(図1)
Buttonにしているのは仕様です。
見た目はこのままで、自動化させて行きたいです。

図2は自動化しようとしてるpyファイルの結果です。
画像のPATHを取得して表示することはできましたが、どうにもposが弄れず重なってしまいます。
for文のたびにposをずらせればいいとは思うのですが、うまく行きません
よろしくお願いします

※図1
図1
※図2
イメージ説明
###発生している問題・エラーメッセージ

###図1のコード

python

1import文 省略〜 2 3class Tops1(Widget): 4 def buttonClickedMenu(self): 5 self.clear_widgets() 6 sys.path.append('../../') 7 from main1 import Main1 8 main1 = Main1() 9 self.add_widget(main1) 10 def buttonClickedNext(self): 11 self.clear_widgets() 12 sys.path.append('./page/main1/tops/') 13 from tops2 import Tops2 14 tops2 = Tops2() 15 self.add_widget(tops2) 16Builder.load_string(r''' 17<Tops1>: 18 Button: 19 text:'< トップス選択に戻る' 20 pos:5,547 21 size:200,50 22 on_press:root.buttonClickedMenu() 23 #Button: 24 #text:'< BACK' 25 #pos:230,10 26 #size:100,50 27 #on_press:root.buttonClickedBack() 28 Label: 29 text:'<トップス1>' 30 pos:300,10 31 size:200,50 32 font_size:18 33 color:0.1,0.1,0.1,1 34 Button: 35 text:'NEXT >' 36 pos:470,10 37 size:100,50 38 on_press:root.buttonClickedNext() 39 BoxLayout: 40 pos:40,425 41 Button: 42 size: 120,120 43 size_hint: None, None 44 Image: 45 source: "page/gallery/bird.png" 46 center_x: self.parent.center_x 47 center_y: self.parent.center_y 48 Button: 49 size: 120,120 50 size_hint: None, None 51 Image: 52 source: "page/gallery/bird.png" 53 center_x: self.parent.center_x 54 center_y: self.parent.center_y 55 Button: 56 size: 120,120 57 size_hint: None, None 58 Image: 59 source: "page/gallery/bird.png" 60 center_x: self.parent.center_x 61 center_y: self.parent.center_y 62 Button: 63 size: 120,120 64 size_hint: None, None 65 Image: 66 source: "page/gallery/bird.png" 67 center_x: self.parent.center_x 68 center_y: self.parent.center_y 69 Button: 70 size: 120,120 71 size_hint: None, None 72 Image: 73 source: "page/gallery/bird.png" 74 center_x: self.parent.center_x 75 center_y: self.parent.center_y 76 Button: 77 size: 120,120 78 size_hint: None, None 79 Image: 80 source: "page/gallery/bird.png" 81 center_x: self.parent.center_x 82 center_y: self.parent.center_y 83 〜以下、同じ文が画像数分続きます〜 84 85''')

###図2のコード

python

1import文 省略〜 2class Picture(Widget): #画像の表示 3 #data_dir_path = u"./page/gallery/" 4 #file_list = os.listdir(r"./page/gallery/") 5 source = StringProperty(None) 6 x = 400 7 y = 100 8 x = NumericProperty(x-100) 9 y = NumericProperty(y-10) 10class Tops3(Widget): 11 hogehoge = StringProperty() 12 def __init__(self, **kwargs): 13 super(Tops3, self).__init__(**kwargs) 14 data_dir_path = u"./page/gallery/" 15 file_list = os.listdir(r'./page/gallery/') 16 curdir = dirname(__file__) 17 for file_name in file_list: 18 root, ext = os.path.splitext(file_name) 19 if ext == u'.png' or u'.jpeg' or u'.jpg': 20 picture = Picture(source= data_dir_path + file_name,rotation=randint(-30, 30)) 21 self.add_widget(picture) 22 def buttomClickedMenu(self): #トップページに戻る 23 self.clear_widgets() 24 sys.path.append('../') 25 from main import TextWidget 26 menu = TextWidget() 27 self.add_widget(menu) 28 29Builder.load_string(r''' 30<Tops3>: 31 Button: 32 text:'<TOPに戻る' 33 pos:5,547 34 size:200,50 35 on_press:root.buttomClickedMenu() 36 37<Picture>: 38 # each time a picture is created, the image can delay the loading 39 # as soon as the image is loaded, ensure that the center is changed 40 # to the center of the screen. 41 on_size: self.center = win.Window.center 42 #size: image.size 43 size_hint: None, None 44 Image: 45 id: image1 46 source: root.source 47 pos:root.x,root.y 48''')

###補足情報(言語/FW/ツール等のバージョンなど)
python2.7
kivy
MacOS

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

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

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

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

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

guest

回答1

0

自己解決

初歩的な問題で、posの初期宣言の位置を間違えていたみたいです。
以下のコードにしたら、重なることなく表示されました。

python

1class Picture(Widget): #画像の表示 2 source = StringProperty(None) 3class Tops3(Widget): 4 hogehoge = StringProperty() 5 def __init__(self, **kwargs): 6 super(Tops3, self).__init__(**kwargs) 7 data_dir_path = u"./page/gallery/" 8 file_list = os.listdir(r'./page/gallery/') 9 curdir = dirname(__file__) 10 pos_x = 40 11 pos_y = 300 12 for file_name in file_list: 13 root, ext = os.path.splitext(file_name) 14 pos_x += 100 15 if ext == u'.png' or u'.jpeg' or u'.jpg' : 16 picture = Picture(source= data_dir_path + file_name,rotation=randint(-30, 30),x = pos_x,y = pos_y) 17 self.add_widget(picture)

投稿2017/11/29 02:21

night9071

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問