Pergunta

Estou um pouco perplexo ao arrastar e soltar no wxPython (mas talvez essa questão também se refira ao arrastar e soltar em outras estruturas GUI).As estruturas fornecem alguns retornos de chamada (OnEnter e OnDragOver) que supostamente me permitem informar ao sistema se a posição atual do mouse é um local válido para soltar o que quer que esteja sendo arrastado.A partir desses métodos posso retornar wx.DragNone, wx.DragCopy, etc.O que me deixa perplexo é que, dentro desses métodos, não tenho permissão para chamar GetData, o que significa que não tenho permissão para examinar os dados que o usuário está arrastando.Se não consigo ver os dados, como posso saber se o usuário pode entrar aqui?

Foi útil?

Solução

Uma solução, que é um hack de utilidade limitada, é quando um arrasto é iniciado, armazenar os dados arrastados em uma referência global ou estática em algum lugar.Desta forma, nos manipuladores OnEnter e OnDragOver, é possível obter uma referência aos dados que estão sendo arrastados.É claro que isso só é útil para arrastar dentro do mesmo aplicativo (na verdade, a mesma instância do aplicativo).

Outras dicas

Não há como ver os dados arrastados em OnEnter e OnDragOver métodos.

A única solução que encontrei é armazenar o item arrastado em alguma variável de instância que possa ser lida dentro desses métodos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top