Я пытаюсь запустить код, размещенный по ссылке ниже, для обработки перетаскивания файлов в приложении Kivy. Kivy: drag n drop, get file pathKivy on_dropfile Не получится
from kivy.app import App
from kivy.core.window import Window
class WindowFileDropExampleApp(App):
def build(self):
Window.bind(on_dropfile=self._on_file_drop)
return
def _on_file_drop(self, window, file_path):
print(file_path)
return
if __name__ == '__main__':
WindowFileDropExampleApp().run()
Это не похоже, запуская «» _on_file_drop функцию события, когда я перетащить файл в окно приложения. Любая помощь, получающая эту работу, будет отличной. Весь мой консольный выход:
$ python main.py
[INFO ] [Logger ] Record log in C:\Users\\.kivy\logs\kivy_17-02-10_163.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [OSC ] using <thread> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] OpenGL version <b'4.4.0 - Build 20.19.15.4463'>
[INFO ] [GL ] OpenGL vendor <b'Intel'>
[INFO ] [GL ] OpenGL renderer <b'Intel(R) Iris(TM) Graphics 540'>
[INFO ] [GL ] OpenGL parsed version: 4, 4
[INFO ] [GL ] Shading version <b'4.40 - Build 20.19.15.4463'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Shader ] fragment shader: <b"WARNING: 0:7: '' : #version directive missing">
[INFO ] [Shader ] vertex shader: <b"WARNING: 0:7: '' : #version directive missing">
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Base ] Start application main loop
[INFO ] [Base ] Leaving application in progress...
Эта точная копия отлично работает для меня. Может быть, вы не отбрасываете файл? Вы видите значок для удаления, например. что стрелка со знаком плюса? – KeyWeeUsr
Да, я вижу изменение значка. @KeyWeeUsr вы используете те же версии, что и я выше? Понятно, что действие dropfile не вызывается. Глядя на [здесь] (https://github.com/kivy/kivy/commit/ee43d7ebff09e654b5551c71d9840da6bf9cb9f4) Мне странно, что только индекс перечислителя переполнения имеет запятую, хотя я не знаю, является ли это актуальным. – KDumont
Я побежал 1.9.1 с py2 и мастер с 3.5.2, оба случая [multi_dropfile.py] (https://raw.githubusercontent.com/kivy/kivy/master/examples/miscellaneous/multiple_dropfile.py) и что ответный пример работал правильно. Это либо ошибка вашего кода (если это не точный пример), либо это может быть поврежденная установка (попробуйте переустановить). Afaik, 1.9.1 официально поддерживается только на 2,7 и 3,4, поэтому может быть что-то не так. Попробуйте установить [ночное колесо] (https://kivy.org/docs/installation/installation-windows.html). – KeyWeeUsr