Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2008 10:58:45

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

Хочу реализовать drag and drop в windows для своего приложения.
Из gui библиотек использую Tkinter, хотя насколько я понимаю, библиотека здесь не причем.
Все что мне нужно, это чтоб приложение получало путь к файлу, который бедет перетащен в окно.
В какую сторону копать?



Отредактировано (Ноя. 17, 2008 11:02:42)

Офлайн

#2 Ноя. 18, 2008 17:21:07

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

drag&drop в windows

http://sourceforge.net/projects/tkdnd
из коробки вроде никак

Офлайн

#3 Ноя. 18, 2008 20:48:41

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

Спасибо, но на это я обратил внимание в первую очередь. В исходниках модуля зеленым по белому написано что это не подходит для внешнего драг и дропа. То есть перетащить файл с проводника виндовс в окно Тк не получиться. А вот кнопочки всякие по канвасу перетягивать, всегда пожалуйста.
Добавлено:
ой.. Не заметил ссылки.. Сейчас посмотрим, чем отличается от tkdnd который идет в коробке.



Отредактировано (Ноя. 18, 2008 20:56:35)

Офлайн

#4 Ноя. 18, 2008 22:00:49

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

Вообщем то начал разбираться. tkdnd это раширение tcl/tk. Нашел даже пару врапперов для него. Но вот никак завести не удалось :( Все установлено, даже примеры в комплекте запускаются, но вот в винде не получается перетащить файл на окошко.

Добавлено:
Уффф… разобрался.. как все запутано то. Завтра опишу подробно, как заставить работать drag and drop в винде используя Tkinter :)



Отредактировано (Ноя. 18, 2008 22:19:44)

Офлайн

#5 Ноя. 19, 2008 05:31:44

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

drag&drop в windows

Простите, что влезаю, но у меня вопрос по смежной теме. Стоит ли покупать/заказывать книгу Брента Уэлша, Кена Джонса
“Практическое программирование на Tcl/tk”. Книга недешевая, а покупать кота в мешке не хочется.
Какие еще есть книги по Tcl/tk?
У меня есть только “Азбука Tcl” - П.В. Москвин.

Спасибо заранее.



Офлайн

#6 Ноя. 19, 2008 07:24:37

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

Эээ.. Может быть стоит спросить об этом в форуме по tcl, ведь в питоне tcl/tk используется только для tkinterа. Тебе он может пригодиться разве что для создания новых виджетов, потом все равно нужно будет враппер на питоне для этого писать.
А так, имхо, ужасно некрасивый язык..
http://ru.wikipedia.org/wiki/Tk



Офлайн

#7 Ноя. 19, 2008 08:17:20

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

drag&drop в windows

gmorgunov
Стоит ли покупать/заказывать книгу Брента Уэлша, Кена Джонса…
Имхо, нет (она у меня есть, и я ей практически не пользуюсь). Поскольку она не по Python, пользоваться ей неудобно.



Офлайн

#8 Ноя. 19, 2008 09:47:46

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

drag&drop в windows

igor.kaist
Меня интересовало мнение людей, пишущих на питоне. Что мне могут ответить на тикль-форуме?
“… Зачем?” , “ … деньги есть - покупай” , “ … так себе” - эти ответы я уже нашел на Linux.org.ru.

The Gray Cardinal
Книга Г.Шилдта “Полный справочник С/С++” - великолепна. А о достоинствах С++ можно долго спорить.
( Но у вас книга Уэлша есть… :) )

Большое спасибо за ответы.

… Книгу я все-таки заказал :)



Офлайн

#9 Ноя. 19, 2008 10:12:13

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

gmorgunov
Меня интересовало мнение людей, пишущих на питоне. Что мне могут ответить на тикль-форуме?
Весело :)
У меня проблема в отношения с девушкой, я ее не понимаю , мне хотелось бы услышать мнение людей пишущих на питоне :)



Офлайн

#10 Ноя. 19, 2008 10:26:02

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

drag&drop в windows

Все разобрался я с drag and drop. Вот мой рецепт.
1. Переходим по ссылке, любезно предоставленной slav0nic http://sourceforge.net/projects/tkdnd
2. Скачаиваем tkdnd (бинарники отдельно для платформ можно отдельно не качать, так как они идут вместе tkdnd для разных платформ, как и исходники)
Распаковываем, копируем в папку tcl (в винде она находится в папке с питоном), и убеждаемся, что из Tkinter работать мы не сможем, так как tkdnd это расширение tcl/tk
3. Идем в гугл и спрашиваем у него “python wrapper for tkdnd”
Порывшись в результатах поиска, и испробовав несколько варианов, понимаем, что все запускается, но не работает :)
4. Идем в гугл опять и ищем “python wrapper for tkdnd problem” :)
5. Используя познания английского языка, выясняем что текущая версия tkdnd-2 а врапперы написаны под старую версию..
6. Ищем и находим klappnase.bubble.org/TkinterDnD2/TkinterDnD2.html
7. Пробуем и убеждаемся что все работает.
Вот пример от меня:

from TkinterDnD2 import *
from Tkinter import *

root = TkinterDnD.Tk()

class gui:


def drop(self,event):
x,y=event.x_root-root.winfo_rootx(),event.y_root-root.winfo_rootx()
self.canvas.create_text(x,y,text=str(event.data))


def __init__(self):
self.canvas=Canvas(root,width=600,height=400)
self.canvas.pack()
self.canvas.drop_target_register('*')
self.canvas.dnd_bind('<<Drop>>', self.drop)


a=gui()
root.mainloop()
запускаем, и перетягиваем мышкой на окно тексты, файлы :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version