wx.TextDropTarget не работает в Linux - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть настольное приложение, разработанное с помощью wxPython.Приложения работают нормально под Windows и OSX (та же кодовая база, без кода для конкретной платформы).Все работает на Linux, кроме перетаскивания.Я могу просто перетащить, но DoDragDrop всегда возвращает wx.DragCancel.Однако я могу перетащить из своего приложения или в другое приложение / рабочий стол, которое исключает текст, а DoDragDrop возвращает wx.DragCopy.

Мне кажется, что DropTargets не вызывается.Я добавил отладочные операторы в OnData и т. Д., И они никогда не активируются.

Кто-нибудь видел это и знает об обходном пути?

1 Ответ

0 голосов
/ 17 ноября 2011

Обнаружена известная проблема в wxWidgets, которая считается исправленной, http://trac.wxwidgets.org/ticket/2763, Я могу воссоздать эту проблему в Linux.Я снова открыл билет.

Тем временем вы можете поменять местами ваши StaticBoxSizer или BoxSizer.или ...

Это работает .... parent = DropTargetCtrn.GetParent () boxes = [x для x в parent.GetChildren (), если type (x) == wx.StaticBox] tmpParent = wx.Панель (родитель) для поля в ящиках: box.Reparent (tmpParent) box.Reparent (parent) parent.Destroy ()

Это решение, по-видимому, снижает StaticBox в иерархии окон, поэтому оно не мешаетотбрасывать события.Обратите внимание, box.Lower () не работает.

...