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 :

Manipulation d'un text view à l'aide de boutons


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Par défaut Manipulation d'un text view à l'aide de boutons
    Bonsoir,

    Je débute avec la bibliothèque graphique GTK+ et je viens demander des conseils sur la façon de faire.

    Pour m'entraîner, je mets au point l'interface d'une calculatrice. Donc j'organise tout à l'aide d'une table. Pour simuler l'écran j'utilise un text view et en dessous je place tous mes boutons avec leur label. Mes boutons sont contenus dans un tableau. À partir de là, pour détecter le clic sur un bouton j'utilise en boucle la fonction g_signal_connect tout le long du tableau pour détecter l'évênement "clicked".

    Ensuite et c'est là que mon problème se pose, pour afficher les caractères cliqués (ici des opérandes ou des opérateurs).

    Voilà la méthode que j'utiliserais :

    Sachant qu'avec la fonction g_signal_connect, la fonction pouvant réagir au signal doit avoir un prototype sous la forme widget, gpointer. En tant que widget j'aurais le bouton pressé et en gpointer j'ai envie de passer le textview.
    Le textview doit être muni d'un buffer, ce qui me permet de récupérer son contenu. À partir de là je récupère le contenu et à l'aide d'une fonction comme strcat je modifie le contenu en faisant textview + label bouton (je dois ajouter des espaces dans la chaine du label bouton). Une fois concaténées (les deux chaînes) je remet le tout dans le buffer et normalement tout va bien ?

    Voilà donc en résumé comment en cliquant sur un bouton passé le texte contenu dans le label de celui-ci dans le textview en pouvant ajouté des espaces autour des opérateurs ?

    Et là j'ai encore rien trouvé sur le sujet, est-il possible de faire réagir un bouton à l'appui d'une touche sur la clavier ? Par exemple j'appuie sur le 1 du pavé numérique faire réagir le bouton1 et repartir sur le g signal connect facilement ? (pas le raccourci avec le alt).

    Sinon est-ce que c'est comme ça qu'on fait en général ? Ou y a t-il une autre méthode bien plus efficace ?

    Merci à vous.

    Bye.

    PS : en fait juste ajouter du texte à l'aide de boutons dans un GtkTextView....

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Par défaut
    J'ai fini par trouver ;-)

    Je peux me servir de la fonction gtk_text_buffer_insert_at_cursor, et ça devrait le faire en récupérant le label du bouton ;-).

    Merci quand même.

    Bye.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2007, 19h52
  2. [Débutant] Manipulation de fichier texte ?
    Par Badaboumpanpan dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 26/06/2007, 10h42
  3. Manipulation de fichiers textes - fonction
    Par kromartien dans le forum C
    Réponses: 2
    Dernier message: 11/06/2007, 00h02
  4. manipuler un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 00h23
  5. inserer du texte a l'aide du css
    Par samourai_alex dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 01/08/2005, 19h15

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