IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

positionner une image au pixel près


Sujet :

GTK+ avec C & C++

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut positionner une image au pixel près
    Bonsoir,

    Comment positionner une image à une position précise dans la fenêtre, et ne pas laisser gtk la positionner pour nous?

    Ou bien encore comment peut-on récupérer la position x,y d'une image(coin supérieur gauche) dans la fenêtre?

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Positionner une image ou connaître sa position sous-entend que l'image est un objet manipulable par Gtk. Donc que c'est un GtkWidget.

    Une autre façon de voir les choses serait de disposer d'un GtkDrawingArea dans lequel tu places/détermines la position d'une image. Ici il te faut conserver, par tes propres moyens, ses coordonnées.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    J'utilise un GtkImage avec image=gtk_image_new_from_file("fichier.jpg");

    Comment connaitre la position(x,y) du point supérieur gauche de l'image dans la fenêtre?

    La fonction gtk_widget_get_margin_left (image); me renvoie 0.

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Tu peux utiliser la fonction gtk_widget_get_allocation();. La variable GtkAllocation (qui est en fait un GdkRectangle) te permettra de retrouver la position de ton image dans le widget parent.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Mouais...En fait cette fonction retourne 0 pour x et y pour la position y.

    Mon image est placée au centre(horizontalement parlant) dans une box verticale, l'allocation utilisée remplit tout l'espace horizontal, même si mon image ne remplit pas tout.

    Il y a donc un décalage entre la position x réelle de l'image et le x(ici 0) de la position retournée par gtk_widget_get_allocation()...

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Tu es à la limite de l'exercice. Finalement le GtkAllocation est correcte au vu de ton GtkWidget. Tu peux soit recalculer le x si tu connais la largeur de ton image par rapport à la largeur du widget parent, soit utiliser un GtkDrawingArea dans lequel tu places ton image comme bon te semble. Cette deuxième solution implique une sauvegarde de la position de l'image dans le GtkDrawingArea.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Pour conclure :

    Avec gtk_widget_get_preferred_size je récupère la taille de l'image, je retranche la largeur de la largeur allouée et je divise par 2 pour obtenir la position x...

    C'est quand même pas simple: j'aurais cru que la position(x,y) de chaque widget était stockée quelquepart.


    Sinon, on peut positionner un widget précisèment dans un GtkLayout avec void gtk_layout_put (GtkLayout *layout, GtkWidget *child_widget, gint x, gint y);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. positionner une image
    Par mans27 dans le forum JSF
    Réponses: 1
    Dernier message: 07/05/2007, 10h13
  2. [VB] excel->word positionner une image
    Par estampille dans le forum VBA Word
    Réponses: 2
    Dernier message: 19/01/2006, 17h34
  3. positionner une image
    Par Bibouda dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/12/2005, 13h26
  4. Modifier une image par pixels
    Par mateo.14 dans le forum MFC
    Réponses: 10
    Dernier message: 21/01/2005, 15h09
  5. comment Positionner une image sur une autre ?
    Par moumoule17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/11/2004, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo