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 :

Curseur dans un GtkTextView ou GtkEntry


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Curseur dans un GtkTextView ou GtkEntry
    Bonjour
    J'utilise un GtkTextView et des GtkEntry dans une application Gtk+2 sous linux
    Pour faire apparaitre le curseur je suis obligé de faire un click droit à la souris (un menu popup apparait) puis un click gauche pour faire disparaitre le menu popup et ensuite j'ai finalement un curseur affiché
    Dans Gtk demos le curseur est présenté "naturellement".
    Toute aide ou direction serait appréciée
    Merci

  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
    Bonjour.

    Je pense avoir compris quel est ton souci.

    Voila un premier code minimaliste qui tente de reproduire le phénomène. Il y a un bouton et un textview dans une box.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <gtk/gtk.h>
     
    gint
    main(int argc, char* argv[]) {
     
      gtk_init (&argc, &argv);
     
      GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_widget_set_size_request (window, 400, 400);
      g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
     
      GtkWidget *box = gtk_vbox_new (FALSE, 4);
      GtkWidget *button = gtk_button_new_with_label ("test button");
      GtkWidget *textview = gtk_text_view_new ();
     
      gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 4);
      gtk_box_pack_start (GTK_BOX (box), textview, FALSE, FALSE, 4);
     
      gtk_container_add (GTK_CONTAINER (window), box);
     
      gtk_widget_show_all (window);
     
      gtk_main ();
     
      return 0;
    }
    Le curseur n'apparaît pas dans le textview simplement parce que le focus par défaut est donné au premier widget. C'est à dire ici au bouton. Il faut donc forcer le focus sur le textview si tu désires avoir le curseur affiché et pouvoir taper immédiatement du texte à l'ouverture.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <gtk/gtk.h>
    
    gint
    main(int argc, char* argv[]) {
    
      gtk_init (&argc, &argv);
    
      GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_widget_set_size_request (window, 400, 400);
      g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
    
      GtkWidget *box = gtk_vbox_new (FALSE, 4);
      GtkWidget *button = gtk_button_new_with_label ("test button");
      GtkWidget *textview = gtk_text_view_new ();
    
      gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 4);
      gtk_box_pack_start (GTK_BOX (box), textview, TRUE, TRUE, 4);
    
      gtk_container_add (GTK_CONTAINER (window), box);
    
      gtk_widget_show_all (window);
    
      /* Force le focus sur textview si ce n'est pas le cas */
      if (!gtk_widget_is_focus (textview))
        gtk_widget_grab_focus (textview);
    
      gtk_main ();
    
      return 0;
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta suggestion, je l'ai testé immédiatement, pas de changement
    Pour préciser, je n'ai pas le curseur même si je clique gauche. Je dois impérativement appeler le menu contextuel (atteint avec clic droit : méthodes de saisies . . . ) pour que le curseur daigne apparaitre

  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
    C'est bizarre. En affichant simplement un GtkTextView dans un GtkWindow tu obtiens la même anomalie ? Parce que chez moi le curseur est présent même si le GtkTextView n'est pas éditable. La seule différence est que le curseur est fixe dans ce dernier cas.

    Peux-tu nous montrer la partie de ton code qui pose souci avec si possible l'agencement de la fenêtre ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Mon application est assez conséquente (100 000 lignes) je vais essayer de restreindre la partie concernée. J'ai le même problème avec les GtkEntry. C'est certainement un indice. Ce problème est apparu il y a quelques années lors de l'installation d'une nouvelle distribution.

    Je reviens vers toi sous peu . . .

  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
    Pour info j'utilise la v2.24.32 de Gtk+.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Même version

  8. #8
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut
    Pour info,

    J'utilise aussi gtk+-2.0( 2.24.32) et de mon coté le curseur de texte s'affiche bien avec l'exemple de gerald3d.
    Merci pour ta suggestion, je l'ai testé immédiatement, pas de changement
    Cdlt,

Discussions similaires

  1. Coordonnées du curseur dans un GtkTreeView
    Par bit_o dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 02/03/2007, 15h59
  2. Deplacer un curseur dans un RichEdit sous visual c
    Par tweek dans le forum Windows
    Réponses: 7
    Dernier message: 14/01/2004, 01h29
  3. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 22h02
  4. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 17h35
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 18h09

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