Cela fait 2 semaines que je découvre python, pyGtk et tout ce qui tourne
autour... et je suis tombé sur un os en ce qui concerne le drag&drop.
Mon application se compose d'une grand composant (EventBox) prenant
presque la totalité de la fenêtre (c'est celui qui doit recevoir le
drag&drop), il contient d'autre composant, notamment une zone de texte.
Problème 1 : J'ai fait le nécessaire sur mon Eventbox pour recevoir les
drop que je voulais, que l'on drop sur une zone vide, sur un label, ou
un bouton, c'est bien l'eventBox qui récupère les info de drop... sauf
lorsque l'on survole la zone de text.
Je comprends que le problème viens du fait que la zone de texte se
définie comme une zone capable de recevoir un drop de texte mais je ne
comprends pas pourquoi GTK, voyant que cette zone ne supporte pas le
drop de mon type spécifique ne transmette pas l'information au parent.
J'ai besoin que mon Eventbox soit capable de recevoir un drop sur toute
sa surface, quelque soit les composants qu'elle contient (ceci ne sont
pas connus au moment du developpement.)
Problème 2 : Le résultat du drop dépends de la position de la souris
dans le composant au moment du drop (Le résultat est différent si on
drop près des bords du composant ou au milieu.)
Dans un premier temps, j'avais pensé signaler les différences à
l'utilisateur en changeant le curseur de souris suite à un event
"drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand
est-ce que le drop se termine pour remettre le curseur normale (L'event
"drag-end" n'est envoyé qu'à la source)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
hg
Black Myst <Black_point_Myst_chez_free_point_fr> wrote:
Bonjour,
Cela fait 2 semaines que je découvre python, pyGtk et tout ce qui tourne autour... et je suis tombé sur un os en ce qui concerne le drag&drop.
Mon application se compose d'une grand composant (EventBox) prenant presque la totalité de la fenêtre (c'est celui qui doit recevoir le drag&drop), il contient d'autre composant, notamment une zone de texte.
Problème 1 : J'ai fait le nécessaire sur mon Eventbox pour recevoir les drop que je voulais, que l'on drop sur une zone vide, sur un label, ou un bouton, c'est bien l'eventBox qui récupère les info de drop... sauf lorsque l'on survole la zone de text. Je comprends que le problème viens du fait que la zone de texte se définie comme une zone capable de recevoir un drop de texte mais je ne comprends pas pourquoi GTK, voyant que cette zone ne supporte pas le drop de mon type spécifique ne transmette pas l'information au parent.
J'ai besoin que mon Eventbox soit capable de recevoir un drop sur toute sa surface, quelque soit les composants qu'elle contient (ceci ne sont pas connus au moment du developpement.)
Problème 2 : Le résultat du drop dépends de la position de la souris dans le composant au moment du drop (Le résultat est différent si on drop près des bords du composant ou au milieu.) Dans un premier temps, j'avais pensé signaler les différences à l'utilisateur en changeant le curseur de souris suite à un event "drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand est-ce que le drop se termine pour remettre le curseur normale (L'event "drag-end" n'est envoyé qu'à la source)
Bon, j'espère avoir été claire... Black Myst
Je ne suis pas un pro de pygtk mais:
1) vois-tu une différence de comportement entre Windows et X11 ? 2) wxWindows passe par gtk+ ... regarde leur démo et vois si ça fait le boulot ... si oui alors c'est un problème dans ton code ou dans pygtk car tu aura la preuve que gtk+ sait faire ce que tu veux
hg
Black Myst <Black_point_Myst_chez_free_point_fr> wrote:
Bonjour,
Cela fait 2 semaines que je découvre python, pyGtk et tout ce qui tourne
autour... et je suis tombé sur un os en ce qui concerne le drag&drop.
Mon application se compose d'une grand composant (EventBox) prenant
presque la totalité de la fenêtre (c'est celui qui doit recevoir le
drag&drop), il contient d'autre composant, notamment une zone de texte.
Problème 1 : J'ai fait le nécessaire sur mon Eventbox pour recevoir les
drop que je voulais, que l'on drop sur une zone vide, sur un label, ou
un bouton, c'est bien l'eventBox qui récupère les info de drop... sauf
lorsque l'on survole la zone de text.
Je comprends que le problème viens du fait que la zone de texte se
définie comme une zone capable de recevoir un drop de texte mais je ne
comprends pas pourquoi GTK, voyant que cette zone ne supporte pas le
drop de mon type spécifique ne transmette pas l'information au parent.
J'ai besoin que mon Eventbox soit capable de recevoir un drop sur toute
sa surface, quelque soit les composants qu'elle contient (ceci ne sont
pas connus au moment du developpement.)
Problème 2 : Le résultat du drop dépends de la position de la souris
dans le composant au moment du drop (Le résultat est différent si on
drop près des bords du composant ou au milieu.)
Dans un premier temps, j'avais pensé signaler les différences à
l'utilisateur en changeant le curseur de souris suite à un event
"drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand
est-ce que le drop se termine pour remettre le curseur normale (L'event
"drag-end" n'est envoyé qu'à la source)
Bon, j'espère avoir été claire...
Black Myst
Je ne suis pas un pro de pygtk mais:
1) vois-tu une différence de comportement entre Windows et X11 ?
2) wxWindows passe par gtk+ ... regarde leur démo et vois si ça fait le
boulot ... si oui alors c'est un problème dans ton code ou dans pygtk car
tu aura la preuve que gtk+ sait faire ce que tu veux
Black Myst <Black_point_Myst_chez_free_point_fr> wrote:
Bonjour,
Cela fait 2 semaines que je découvre python, pyGtk et tout ce qui tourne autour... et je suis tombé sur un os en ce qui concerne le drag&drop.
Mon application se compose d'une grand composant (EventBox) prenant presque la totalité de la fenêtre (c'est celui qui doit recevoir le drag&drop), il contient d'autre composant, notamment une zone de texte.
Problème 1 : J'ai fait le nécessaire sur mon Eventbox pour recevoir les drop que je voulais, que l'on drop sur une zone vide, sur un label, ou un bouton, c'est bien l'eventBox qui récupère les info de drop... sauf lorsque l'on survole la zone de text. Je comprends que le problème viens du fait que la zone de texte se définie comme une zone capable de recevoir un drop de texte mais je ne comprends pas pourquoi GTK, voyant que cette zone ne supporte pas le drop de mon type spécifique ne transmette pas l'information au parent.
J'ai besoin que mon Eventbox soit capable de recevoir un drop sur toute sa surface, quelque soit les composants qu'elle contient (ceci ne sont pas connus au moment du developpement.)
Problème 2 : Le résultat du drop dépends de la position de la souris dans le composant au moment du drop (Le résultat est différent si on drop près des bords du composant ou au milieu.) Dans un premier temps, j'avais pensé signaler les différences à l'utilisateur en changeant le curseur de souris suite à un event "drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand est-ce que le drop se termine pour remettre le curseur normale (L'event "drag-end" n'est envoyé qu'à la source)
Bon, j'espère avoir été claire... Black Myst
Je ne suis pas un pro de pygtk mais:
1) vois-tu une différence de comportement entre Windows et X11 ? 2) wxWindows passe par gtk+ ... regarde leur démo et vois si ça fait le boulot ... si oui alors c'est un problème dans ton code ou dans pygtk car tu aura la preuve que gtk+ sait faire ce que tu veux
hg
Black Myst
On 22 mai, 22:32, Black Myst <Black_point_Myst_chez_free_point_fr> wrote:
Problème 2 : Le résultat du drop dépends de la position de la souris dans le composant au moment du drop (Le résultat est différent si on drop près des bords du composant ou au milieu.) Dans un premier temps, j'avais pensé signaler les différences à l'utilisateur en changeant le curseur de souris suite à un event "drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand est-ce que le drop se termine pour remettre le curseur normale (L'event "drag-end" n'est envoyé qu'à la source)
Je n'avais pas vue l'évènement "drag_leave" qui corresponds exactement à ce que je cherchais...
Mon problème 1 reste entier...
black Myst
On 22 mai, 22:32, Black Myst <Black_point_Myst_chez_free_point_fr>
wrote:
Problème 2 : Le résultat du drop dépends de la position de la souris
dans le composant au moment du drop (Le résultat est différent si on
drop près des bords du composant ou au milieu.)
Dans un premier temps, j'avais pensé signaler les différences à
l'utilisateur en changeant le curseur de souris suite à un event
"drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand
est-ce que le drop se termine pour remettre le curseur normale (L'event
"drag-end" n'est envoyé qu'à la source)
Je n'avais pas vue l'évènement "drag_leave" qui corresponds exactement
à
ce que je cherchais...
On 22 mai, 22:32, Black Myst <Black_point_Myst_chez_free_point_fr> wrote:
Problème 2 : Le résultat du drop dépends de la position de la souris dans le composant au moment du drop (Le résultat est différent si on drop près des bords du composant ou au milieu.) Dans un premier temps, j'avais pensé signaler les différences à l'utilisateur en changeant le curseur de souris suite à un event "drag-motion". Cela marche, mais je n'ai aucun moyen de savoir quand est-ce que le drop se termine pour remettre le curseur normale (L'event "drag-end" n'est envoyé qu'à la source)
Je n'avais pas vue l'évènement "drag_leave" qui corresponds exactement à ce que je cherchais...