Kivy安卓实战 | 工具箱: 文件选择 - 图1
© Karobben

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

  1. CryptoWatch-Kivy 1.13
  2. Kivy 2.0.0
  3. Kivy-Garden 0.1.4
  4. kivy-garden.wordcloud 1.0.0
  5. kivymd 0.104.2.dev0

Quick Review

  1. tree
  1. ├── bin
  2. └── KarobbenTB-1.3-armeabi-v7a-debug.apk
  3. ├── buildozer.spec
  4. ├── favicon.ico
  5. ├── font
  6. ├── FangZhengHeiTiFanTi-1.ttf
  7. ├── HuaKangXinZhuanTi-1.ttc
  8. ├── HuaKangXinZhuanTi-1.ttf
  9. └── JingDianFanJiaoZhuan-1.ttf
  10. ├── Layout
  11. ├── filechooser.kv
  12. ├── Navigation_Draw.kv
  13. ├── Navigation_Tabs.kv
  14. └── Seq.kv
  15. ├── lib
  16. └── bio_seq.py
  17. ├── libWidget
  18. ├── filechooser.py
  19. └── Seq.py
  20. ├── logo.png
  21. └── main.py

Filechooser

My another post about Filechooser: Karobben
Document: kivy.org

  1. touch libWidget filechooser.py
  1. + from libWidget.filechooser import ConfirmPopup
  2. class MainApp(MDApp):
  3. + ConfirmPopup = ConfirmPopup()
  4. + def change_text(self, Files):
  5. + self.Button_test.text = Files[0]
  6. + print(str(Files))
  7. def build(self):
  8. screen = Screen()
  9. + screen.change_text = self.change_text
  10. def on_start(self):
  11. + self.Button_test = MDRectangleFlatButton(
  12. + text="Hello, World",
  13. + pos_hint={"center_x": 0.5, "center_y": 0.5},
  14. + on_release = self.ConfirmPopup.popup_func)
  15. + Tab1.add_widget(self.Button_test)
  1. from kivy.app import App
  2. from kivy.uix.anchorlayout import AnchorLayout
  3. from kivy.uix.boxlayout import BoxLayout
  4. from kivy.uix.popup import Popup
  5. from kivy.lang import Builder
  6. class ConfirmPopup(BoxLayout):
  7. def __init__(self, **kwargs):
  8. Builder.unload_file("./Layout/filechooser.kv")
  9. Builder.load_file("./Layout/filechooser.kv")
  10. self.register_event_type('on_answer')
  11. self.register_event_type('on_cancel')
  12. super(ConfirmPopup, self).__init__(**kwargs)
  13. self.total_images = 0
  14. def on_answer(self, filename, MainPage):
  15. self.total_images = filename
  16. if len(filename) >0:
  17. MainPage.change_text(self.total_images)
  18. else:
  19. MainPage.change_text("Please Select a File")
  20. def on_cancel(self, filename, MainPage):
  21. pass
  22. def popup_func(self, *args):
  23. content = ConfirmPopup()
  24. content.bind(on_answer = self._on_answer)
  25. content.bind(on_cancel = self._on_answer)
  26. #content.bind(Cancel = self._on_answer)
  27. self.popup = Popup(title="Select .zip file",
  28. content=content,
  29. size_hint=(None, None),
  30. size=(500, 500),
  31. auto_dismiss=True)
  32. self.popup.open()
  33. def _on_answer(self, instance, answer, obj):
  34. self.popup.dismiss()
  35. def dismiss(self):
  36. self.popup.dismiss()
  1. #: kivy 1.10.0
  2. <ConfirmPopup>:
  3. BoxLayout:
  4. orientation: 'vertical'
  5. FileChooserIconView:
  6. id: filechooser
  7. #filters: ['*.zip']
  8. GridLayout:
  9. cols: 2
  10. size_hint: 1,0.2
  11. Button:
  12. text: 'OK'
  13. on_release: root.dispatch('on_answer', filechooser.selection, app.root)
  14. size_hint: 1,0.2
  15. Button:
  16. id: cancel
  17. text: 'Cancel'
  18. on_release: root.dispatch('on_cancel', filechooser.selection, app.root)
  19. size_hint: 1,0.2
  1. from kivy.app import App
  2. from kivy.uix.floatlayout import FloatLayout
  3. from kivy.factory import Factory
  4. from kivy.properties import ObjectProperty
  5. from kivy.uix.popup import Popup
  6. from kivy.utils import platform
  7. from kivy.uix.screenmanager import Screen
  8. from kivymd.uix.button import MDRectangleFlatButton
  9. from kivy.lang import Builder
  10. from kivymd.app import MDApp
  11. import os
  12. from kivy.uix.anchorlayout import AnchorLayout
  13. from kivy.uix.boxlayout import BoxLayout
  14. from kivy.uix.popup import Popup
  15. from kivy.lang import Builder
  16. from filechooser import ConfirmPopup
  17. class MainPage(AnchorLayout):
  18. ConfirmPopup = ConfirmPopup()
  19. def __init__(self, **kwargs):
  20. super(MainPage, self).__init__(**kwargs)
  21. def change_text(self, Files):
  22. self.the_time.text = str(Files)
  23. print(str(Files))
  24. class Main(App):
  25. def build(self):
  26. Builder.load_file("main.kv")
  27. return MainPage()
  28. if __name__ == "__main__":
  29. Main().run()

Change the style of the Filechooser

Background color: @ Nykakin[1]

  1. canvas.before:
  2. Color:
  3. rgb: 1, 1, 1
  4. Rectangle:
  5. pos: self.pos
  6. size: self.size

Kivy安卓实战 | 工具箱: 文件选择 - 图2

Else

newbie programmerz; 2019; Changing the icon of Kivy FileChooserIconView; StackOverflow

Cube_tbh; 2015; How to allow user to choose file as background image in kivy?

GitHub Repository: Karobben Toolbox
Android Release: Karobben Toolbox


Enjoy~

本文由Python腳本GitHub/語雀自動更新

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

GitHub: Karobben
Blog:Karobben
BiliBili:史上最不正經的生物狗


  1. picibucor; 2016; font-color of FileChooser; StackOverflow ↩︎