首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像从文件系统下载到kivy应用程序

将图像从文件系统下载到kivy应用程序
EN

Stack Overflow用户
提问于 2020-05-25 10:50:47
回答 1查看 762关注 0票数 1

我有一个简单的python 应用程序和sqlite数据库。

我想要实现将我的照片从手机添加到应用程序的能力。

当用户单击按钮或任何其他方式时,如何打开文件管理器。该文件应上载到它位于我的应用程序的文件夹中(在./images文件夹中),并将其名称添加到我的数据库中。

这个是可能的吗?还是将图像上传到数据库更好?(不打算使用10幅以上的图像)

我将很高兴在文档或示例中看到指向合适解决方案的链接。

更新

kivy FileChooser工作在我的个人电脑(ubuntu)上,但是在电话上它打开一个你无法从任何地方获得的根文件夹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 21:59:02

这是我的工作

代码语言:javascript
复制
from kivymd.app import MDApp
from kivy.core.window import Window
from kivy.lang import Builder
from kivy.factory import Factory
from kivy.uix.modalview import ModalView
from plyer import storagepath

from kivymd.uix.filemanager import MDFileManager
from kivymd.theming import ThemeManager
from kivymd.toast import toast


Builder.load_string('''


<ExampleFileManager@BoxLayout>
    orientation: 'vertical'
    spacing: dp(5)

    MDToolbar:
        id: toolbar
        title: app.title
        left_action_items: [['menu', lambda x: None]]
        elevation: 10
        md_bg_color: app.theme_cls.primary_color


    FloatLayout:

        MDRoundFlatIconButton:
            text: "Open manager"
            icon: "folder"
            pos_hint: {'center_x': .5, 'center_y': .6}
            on_release: app.file_manager_open()
''')


class Example(MDApp):
    title = "File Manage"

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        Window.bind(on_keyboard=self.events)
        self.manager_open = False
        self.manager = None

    def build(self):
        return Factory.ExampleFileManager()

    def file_manager_open(self):
        if not self.manager:
            self.manager = ModalView(size_hint=(1, 1), auto_dismiss=False)
            self.file_manager = MDFileManager(
                exit_manager=self.exit_manager, select_path=self.select_path)
            self.manager.add_widget(self.file_manager)
            self.file_manager.show(storagepath .get_home_dir())  # output manager to the screen
        self.manager_open = True
        self.manager.open()

    def select_path(self, path):
        '''It will be called when you click on the file name
        or the catalog selection button.

        :type path: str;
        :param path: path to the selected directory or file;
        '''

        self.exit_manager()
        toast(path)

    def exit_manager(self, *args):
        '''Called when the user reaches the root of the directory tree.'''

        self.manager.dismiss()
        self.manager_open = False

    def events(self, instance, keyboard, keycode, text, modifiers):
        '''Called when buttons are pressed on the mobile device..'''

        if keyboard in (1001, 27):
            if self.manager_open:
                self.file_manager.back()
        return True


Example().run()

KivyMD文件管理器

普莱尔

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62000898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档