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 :

Récupéré les coordonnées de ma case


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Par défaut Récupéré les coordonnées de ma case
    Bonjour.

    Je poste, car j'ai un petit problème (en meme temps si je poste c'est pas que tout vas bien...) bref :

    J'ai fais un petit affichage Gtk pour un résolveur de sudoku. Et j'ai donc organiser mes case (bouton cliquable) en table et lorsque je clic sur une des cases, elle apelle donc un callback : Comment puis-je (dans la fonction appellée lors du callback) récupérer les coordonnées X,Y de ma case ? jusqu'à maintenant je passait en argument une structure où était définis les coordonnée en question, mais bon c'est pas jolie jolie ...


    merci d'avance


    damunix

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Le plus simple aurait été de créer ton propre widget (voici un tutoriel qui explique comment faire :
    Créer son widget GTK+ en Langage C
    ) et lors de sa construction tu lui passe en argument sa position que tu sauvegarde comme propriétés privées de l'objet.

    Par contre d'un point de vu conceptuel, chaque élément n'a pas à connaitre sa position, il doit exister un widget parent qui lui les connait et c'est lui qui appel l'algo. donc peut être revoir la partie conception pour mieux organiser les choses.

    Pour finir, y a la méthode (c) la rache (forcement non testée), à partir de ton widget, tu doit pouvoir connaître son parent et à partir de là retrouver sa position.


  3. #3
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    Salut,

    Pour qu'une fonction C retourne plusieurs valeurs, ou prenne plusieurs variables sur un seul argument, une seule solution: la structure.

    Alternative au problème: les variables globales. On dit que c'est mal, parce que les appels non-contigus en mémoire sont plus lents. C'est vrai, mais quand on n'est pas à la microseconde près ça n'est pas dérangeant d'en déclarer une vingtaine dans l' en-tête d'un widget. Déclarées en static elles ne seront pas accessibles par des objets externes avec un extern val.

    Donc, ne changes rien!

Discussions similaires

  1. Comment récupér les coordonnées GPS d'un point sur la carte
    Par Rhino Onizuka dans le forum APIs Google
    Réponses: 2
    Dernier message: 10/01/2014, 13h42
  2. Réponses: 2
    Dernier message: 27/01/2005, 11h47
  3. [langage] Trouver les fichiers sans la case
    Par nledez dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2004, 12h07
  4. Réponses: 2
    Dernier message: 14/09/2004, 18h00
  5. Récuperer les coordonnées d'un vecteur
    Par kerzut dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2003, 11h51

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