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 :

Bloquer l'�v�nement de la touche Enter du clavier dans un text_view


Sujet :

GTK+ avec C & C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 5
    Par d�faut Bloquer l'�v�nement de la touche Enter du clavier dans un text_view
    Salut, Je suis entrain de r�aliser une calculatrice en Gtk et j'utilise un text_view pour r�cup�rer l'op�ration � �ffectuer. Lorsqu'on appui sur la touche Entrer du clavier dans un text_view par defaut on obient une nouvelle ligne, j'aimerais savoir comment faire pour r�cup�rer l'�v�nement de cette touche pour qu'elle ait le m�me r�le que mon bouton d'�galit�. Mer�i d'avance pour votre aide

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

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

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par d�faut
    Bonsoir.

    Ce que je tenterais serait d'intercepter la frappe du clavier. Pour ce faire tu peux utiliser le signal "key-press-event" sur le GtkTextView �tant donn� qu'il h�rite des GtkWidget.

    Dans le callback associ� tu peux v�rifier si la touche enfonc�e n'est pas la touche "Entrer" Si tel est le cas tu peux alors activer directement le callback de ton bouton et renvoy� TRUE pour stopper la propagation du signal au buffer du TextView. ainsi tu n'auras pas de retour � la ligne.

  3. #3
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 5
    Par d�faut
    Vraiment mer�i beuacoup �a marche

  4. #4
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 5
    Par d�faut
    Dsl de te d�ranger encore. J'ai constat� que une fois l'�v�nement d'une touche du clavier intercept� je deviens propri�t� de tout le reste. Et l� �� m'agasse . Comment faire alors pour reprendre l'�v�nement des autres touches.

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

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

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par d�faut
    Peux-tu me montrer le code du callback associ� ?

  6. #6
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 5
    Par d�faut
    g_signal_connect(text_view, "key-press-event", G_CALLBACK (on_key_press), text_view)
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
     
    void
    on_key_press (GtkWidget *widget, 
                  GdkEventKey *event,
                  gpointer  data)
    {
     
          //GdkModifierType modifiers;
     
         //modifiers = gtk_accelerator_get_default_mod_mask ();
        /*Determiner la touche pressée */
          switch (event->keyval)
          {
            case GDK_KEY_KP_0:
            case GDK_KEY_0:
                insert_text("0", data);
            break;
            case GDK_KEY_KP_1:
            case GDK_KEY_1:
                insert_text("1", data);
            break;
            case GDK_KEY_KP_2:
            case GDK_KEY_2:
                insert_text("2", data);
            break;
            case GDK_KEY_3:
            case GDK_KEY_KP_3:
                insert_text("3", data);
            break;
            case GDK_KEY_4:
            case GDK_KEY_KP_4:
                insert_text("4", data);
            break;
            case GDK_KEY_5:
            case GDK_KEY_KP_5:
                insert_text("5", data);
            break;
            case GDK_KEY_6:
            case GDK_KEY_KP_6:
                insert_text("6", data);
            break;
            case GDK_KEY_7:
            case GDK_KEY_KP_7:
                insert_text("7", data);
            break;
            case GDK_KEY_8:
            case GDK_KEY_KP_8:
                insert_text("8", data);
            break;
            case GDK_KEY_9:
            case GDK_KEY_KP_9:
                insert_text("", data);
            break;
            case GDK_KEY_Home:
            case GDK_KEY_Page_Up:
                insert_text("45", data);
            break;
            case GDK_KEY_End:
            case GDK_KEY_Page_Down:
                insert_text("45", data);
            break;
            case GDK_KEY_Left:        
                insert_text("G", data);
            break;
            case GDK_KEY_Right:
                insert_text("R", data);
            break;
            case GDK_KEY_Up:
                insert_text("Up", data);
            break;
            case GDK_KEY_Down:
                insert_text("Down", data);
            break;
            case GDK_KEY_plus:
            case GDK_KEY_KP_Add:
                insert_text("+", data);
            break;
            case GDK_KEY_KP_Multiply:
                insert_text("*", data);
            break;
            case GDK_KEY_KP_Subtract:
            case GDK_KEY_minus:
                insert_text("−", data);
            break;
            case GDK_KEY_KP_Decimal:
                insert_text(".", data);
            break;
            case GDK_KEY_KP_Divide:
            case GDK_KEY_slash:
            case GDK_KEY_division:
                insert_text("÷", data);
            break;
            case GDK_KEY_percent:
                insert_text("%", data);
            break;
            case GDK_KEY_parenleft:
                insert_text("(", data);
            break;
            case GDK_KEY_parenright:
                insert_text(")", data);
            break;
            case GDK_KEY_KP_Enter:
            case GDK_KEY_Return:
                insert_text("−", data);
            break;
     
     
        }
    }

Discussions similaires

  1. R�ponses: 2
    Dernier message: 17/11/2014, 13h20
  2. ActionListener sur touche Enter du clavier ?
    Par korallly dans le forum D�buter
    R�ponses: 11
    Dernier message: 24/05/2011, 09h21
  3. Comment cr�er un appuie de touche enter sans gestionnaire �v�nement ?
    Par Telemak dans le forum Interfaces Graphiques en Java
    R�ponses: 2
    Dernier message: 03/09/2007, 20h23
  4. R�ponses: 3
    Dernier message: 10/07/2007, 11h13
  5. R�ponses: 2
    Dernier message: 29/08/2005, 18h29

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