Kivy 中的 on_drop_file 函数 for python 传递 5 个参数,但我的 drop 函数中只允许传递 3 个参数
The on_drop_file function in Kivy for python passes 5 arguments, but only 3 arguments are allowed in my drop function
我正在关注这个 - Kivy: drag n drop, get file path 来自 Whosebug 的教程,以便在我的 kivy gui 应用程序中实现拖放文件功能。但是,当我 运行 示例代码时:
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_dropfile 功能已被弃用,我应该改用 on_drop_file 功能。在将其更改为 on_drop_file 后,在以下代码中:
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.button import Label
from kivy.core.window import Window
class Gui(App):
def build(self):
Window.bind(on_drop_file=self._on_file_drop)
return Label(text = "Drag and Drop File here")
def _on_file_drop(self, window, file_path):
print(file_path)
return
if __name__ == '__main__':
drop = Gui()
drop.run()
我收到以下错误:
TypeError: Gui._on_file_drop() takes 3 positional arguments but 5 were given
我似乎找不到我应该包含的 5 个位置参数是什么。我的 _on_file_drop()
函数应该如何修改才能使其正常工作?
只需在 on_file_drop()
函数中创建任意 x 和 y 参数即可解决此问题,如下所示:
def _on_file_drop(self, window, file_path, x, y):
print(file_path)
return
我正在关注这个 - Kivy: drag n drop, get file path 来自 Whosebug 的教程,以便在我的 kivy gui 应用程序中实现拖放文件功能。但是,当我 运行 示例代码时:
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_dropfile 功能已被弃用,我应该改用 on_drop_file 功能。在将其更改为 on_drop_file 后,在以下代码中:
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.button import Label
from kivy.core.window import Window
class Gui(App):
def build(self):
Window.bind(on_drop_file=self._on_file_drop)
return Label(text = "Drag and Drop File here")
def _on_file_drop(self, window, file_path):
print(file_path)
return
if __name__ == '__main__':
drop = Gui()
drop.run()
我收到以下错误:
TypeError: Gui._on_file_drop() takes 3 positional arguments but 5 were given
我似乎找不到我应该包含的 5 个位置参数是什么。我的 _on_file_drop()
函数应该如何修改才能使其正常工作?
只需在 on_file_drop()
函数中创建任意 x 和 y 参数即可解决此问题,如下所示:
def _on_file_drop(self, window, file_path, x, y):
print(file_path)
return