Я хочу получить доступ к своим изображениям / фотогалерее на устройстве 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. У меня есть три вопроса по этому коду:
- Как я могу отобразить imagePicker?
Когда я использую imagePicker.delegate = self, приложение вылетает, потому что
[...] делегат, но методы @protocol не объявлены.
Но я объявил протокол с "@protocol ('UIImagePickerControllerDelegate')" Так почему же не будете использовать мой объявленный протокол? (Я также попытался добавить «UIImagePickerControllerDelegate» в protocol.py из pyobjus . Это не решило проблему)
- Если протокол будет работать, это правильный способ использования метода «imagePickerControllerDidFini sh (self, image)» для доступа к изображению?