Я думаю, что этот вопрос очень базовый c, но он останавливает меня на два дня. Я хочу сделать простой Kivy- GUI -App. Перетащите папку в ScrollView, затем ScrollView покажет файлы в папке. Вот где я:
from kivy.app import App
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.gridlayout import GridLayout
class DropApp(App):
def build(self):
box = BoxLayout()
scrV = ScrollView(width = 300, height = 400, size_hint_x=None, size_hint_y=None)
box.add_widget(scrV)
layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
layout.bind(minimum_height=layout.setter('height'))
for i in range(100):
btn = Button(text=str(i), size_hint_y=None, height=40)
layout.add_widget(btn)
scrV.add_widget(layout)
Window.bind(on_dropfile=self.handledrops(widget = scrV))
return box
def handledrops(self, widget, filename, *args):
if widget.collide_point(*Window.mouse_pos):
print(filename)
if __name__ == '__main__':
DropApp().run()
ПРИМЕЧАНИЕ: перетащите в виджет, а не в окно. Я много гуглил, изучал много примеров. Я не могу найти, что не так с кодом. Большинство примеров на inte rnet используют много классов. Но то, что я хочу, это окно, кнопка, метка .... Я пытаюсь понять, что такое класс, что такое init , что такое self., Что такое super (). Но они делают код абстрактным. Поэтому я избегаю их, насколько это возможно. Надеюсь, кто-нибудь может мне помочь, что не так с этим кодом.