2019年9月23日月曜日

Python+Kivy 備忘録 ディレクトリ検索編

ネットで漁ったソースをくっつけ合わせて動けばOKという、ダメPGそのもののコーディングをしているのですが、KVファイルを介在させない FileChooser のコードすら日本語のページでは検索できなかったのですよ。いわんやディレクトリのみ検索をや、という状況になりまして。またもや休日が吹っ飛んだ結果がこちらになります。
コード

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

from os.path import join, isdir

#from kivy.uix.filechooser import FileChooserListView
from kivy.uix.filechooser import FileChooserIconView

#class DirectoryChooser(FileChooserListView):
class DirectoryChooser(FileChooserIconView):
  def is_dir(self,directory,filename):
    return isdir(join(directory,filename))

class MyWidget(BoxLayout):
  orientation='vertical'
  def __init__(self,**kwargs):
    super(MyWidget,self).__init__(**kwargs)
    self.dc =DirectoryChooser(size_hint_y=1)
    self.dc.filters=[self.dc.is_dir]
    self.add_widget(self.dc)

class MyApp(App):
  def build(self):
    layout = MyWidget()
    return layout

if __name__ == '__main__':
  MyApp().run()

※追記 ubuntu20.04 上の python3 + python3-kivy にて動作を確認しました
※追記 Android + Kivy Launcher 上ですと4.4~6までしか動作しないようです
尚、コメントアウトしている FileChooserListView の行と FileChooserIconView を入れ替えるとリストビュー型になります。

うーん。やっぱりKVファイル挟まない方が書きやすいと思う私は旧人類なんでしょうかねえ?

0 件のコメント:

コメントを投稿