Добавьте UIImagePickerController к приложению kivy- ios (Python) - PullRequest
1 голос
/ 11 февраля 2020

Я хочу получить доступ к своим изображениям / фотогалерее на устройстве iOS из приложения kivy. В Kivy нет встроенного способа сделать это, поэтому я пытаюсь решить его с помощью kivy / pyobjus , где я могу использовать UIImagePickerController (из Apples UIKit).

from kivy.app import App
from kivy.lang import Builder
from pyobjus import autoclass, protocol



class TestApp(App):

    ui = Builder.load_file("main.kv")
    def build(self):
        return self.ui

    def imagePicker(self):
        UIImagePickerController = autoclass('UIImagePickerController')
        self.picker = UIImagePickerController.alloc().init()
        self.picker.delegate = self
        self.picker.sourceType = 0

        @protocol('UIImagePickerControllerDelegate')
        def imagePickerControllerDidFinish(self, image):
           print("ABC")

Пользовательский интерфейс - это просто кнопка, которая вызывает функцию imagePicker. У меня есть три вопроса по этому коду:

  1. Как я могу отобразить imagePicker?
  2. Когда я использую imagePicker.delegate = self, приложение вылетает, потому что

    [...] делегат, но методы @protocol не объявлены.

    Но я объявил протокол с "@protocol ('UIImagePickerControllerDelegate')" Так почему же не будете использовать мой объявленный протокол? (Я также попытался добавить «UIImagePickerControllerDelegate» в protocol.py из pyobjus . Это не решило проблему)

  3. Если протокол будет работать, это правильный способ использования метода «imagePickerControllerDidFini sh (self, image)» для доступа к изображению?
...