рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдХреЗрд╡рд▓ SDL2 рдореБрджреНрджрд╛ рд╣реИ, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдбреЙрдХреНрд╕ рдореЗрдВ рдХреБрдЫ рдЙрд▓реНрд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рдЙрдирдХреЗ рдмрдЧ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рд╡рд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдкреЛрдХ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдЬрд╛рдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдирдХреА рдорд╛рд╕реНрдЯрд░/рдЯреНрд░рдВрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рддрдп рдирд╣реАрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред
from kivy.app import runTouchApp
from kivy.core.window import Window
def _drop(window, file_path):
print(file_path)
Window.bind(on_dropfile=_drop)
runTouchApp()
рдПрд╕рдбреАрдПрд▓2 рдЙрджрд╛рд╣рд░рдг
#include <SDL2/SDL.h>
int main() {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window *window = SDL_CreateWindow(
"Drag-and-Drop",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
800, 600, SDL_WINDOW_SHOWN
);
int running = 1;
while (running) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_DROPFILE:
printf("Dropped file: %s\n", event.drop.file);
break;
case SDL_QUIT:
running = 0;
break;
}
}
}
SDL_DestroyWindow(window);
SDL_Quit();
}
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдЙрдиреНрдирдд рдЕрдиреБрдорддрд┐ рд╡рд┐рдВрдбреЛ рд╕реЗ рднреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛? рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ; рдореИрдВ рдЙрдиреНрдирдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рднреА рд╡рд┐рдВрдбреЛрдЬрд╝ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░/рдлрд╝рд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓реВрдВрдЧрд╛; рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рд╡рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдУрдПрд╕ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдРрд╕реЗ рд╕рдВрджрд░реНрдн рдПрдХреНрд╕рдЪреЗрдВрдЬреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ; рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдмрдлрд░ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдмрдВрдЯреВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ sudo python multiple_dropfile.py
рдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЙрдиреНрдирдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ cmd /c explorer
рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрдирдд рдЕрдиреБрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рдШрдЯрдирд╛ рд╕реЗ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рдХрдИ рдореЗрдВ; рд╢рд╛рдпрдж рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ Kivy рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИ; рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдпрдж рдПрд╕рдбреАрдПрд▓ рдХреЗ рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рддрдм рддрдХ рд╣реИ рдЬрдм рддрдХ рд╣рдо рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдкреНрд░рддрд┐ рдПрдордЖрдИрд╕реА рд╕реНрддрд░ рдкрд░ рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдпрд╣ рднреА рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдХреЛ Linux рдкрд░ рднреА рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА; рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рднреА рд╕реВрдбреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЧрд╣рд░рд╛ рдкреГрдердХреНрдХрд░рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ; рднрд▓реЗ рд╣реА рд╡реЗ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реВрдбреЛ рдФрд░ рдЧреИрд░-рд╕реВрдбреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИред рддреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рднреА рдЦреЛрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╡рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЙрдирдХреА рд╕рдорд╕реНрдпрд╛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣ рд╕рд┐рд░реНрдл рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ рд╣реИред
рд╣рдореЗрдВ рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдореЗрдВ рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред