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 :

Question sur les GtkLinkButton


Sujet :

GTK+ avec C & C++

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Question sur les GtkLinkButton


    J'utilise actuellement un GtkLinkButton pour ouvrir le logiciel de messagerie par défaut sur le pc de l'utilisateur comme ça, quand il clique dessus, il peut m'envoyer un mail.

    J'ai ceci comme message dans ma console :
    (CFG.exe:3512): Gtk-WARNING **: Unable to show 'mailto:franhec@gmail.com':
    Erreur de l'interrogation du fichier «*C:\Projects\CFG\mailto:franhec@gmail.com*»*:
    No such file or directory

    Process returned 0 (0x0) execution time : 21.353 s
    Press any key to continue.
    J'ai de même sur le bouton pointant sur mon site :
    (CFG.exe:528): Gtk-WARNING **: Unable to show 'http://franckh.developpez.com':
    Aucune application n'est enregistrée pour gérer ce fichier

    Process returned 0 (0x0) execution time : 7.722 s
    Press any key to continue.
    Quelqu'un peut m'en dire un peu plus pour que ça fonctionne ?



  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut
    Salut,

    Quelle version de GTK utilisez-vous ?
    La version 2.24 (la dernière stable sous Win32) possède un bug répertorié à ce niveau :
    https://bugzilla.gnome.org/show_bug.cgi?id=617874

    Peut-être la version 3 officieuse a-t'elle été patchée ? Je ne l'utilise pas, je ne peux pas vous dire ...

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    C'est effectivement la 2.24.10 que j'utilise, c'est d'ailleurs la dernière version officielle sous Windows, bon bin tanpis alors, reste à attendre la version 3 officielle car l'application va être distribuée donc je ne peut pas mettre une version alpha ou pire encore

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut
    Vous avez une solution de contournement qui peut être valable selon le contexte d'utilisation. Je ne l'ai jamais utilisé pour ouvrir une page web ou envoyer un email mais a priori ce devrait être faisable.

    C'est en utilisant la GLib directement :
    https://developer.gnome.org/glib/2.3...Processes.html

    Ne pas utiliser de GtkLinkButton mais un GtkButton tout simple (gtk_button_new ())
    Ajouter un signal "clicked"
    Et dans la callback :

    soit utiliser g_spawn_command_line_async ()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    gboolean b;
    GError *err = NULL;
    gchar *commande = "...";
     
    b = g_spawn_command_line_async (commande, &err);
    if (!b)
    {
    	/* erreur */
    }
    commande doit être en UTF8.

    soit utiliser g_spawn_async ()


    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
    static void func_mychildprocess (GPid pid, int status, gpointer data) 
    { 
      /*...*/
    }
     
    gboolean myCBclicked (GtkWidget *widget, gpointer data)
    {
    gboolean b;
    GError *err = NULL;
    GPid mypid = 0;
    gchar *command[3];
     
    command[0] = "open"; /* sous MS Windows uniquement */
    command[1] = une_url;	/* en UTF8 */
    command[2] = NULL;	/* doit être NULL-terminé */
     
    b = g_spawn_async(
    	NULL,	/* le defaut devrait convenir */
    	command,
    	NULL,	/* l'environnement hérite du parent, sinon à définir */
    	G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH, /* search_path pour chercher l'exe du browser dans le PATH, le premier flag est peut-être inutile ici */
    	NULL,	/* fonction à lancer avant la commande */
    	data,
    	&mypid,  /* retourne le pid enfant (si succès) */
    	&err
    	);
    if (!b)
    {
    	/* errur */
    }
     
    /* si G_SPAWN_DO_NOT_REAP_CHILD est ajouté : */
    g_child_watch_add (mypid, (GChildWatchFunc) func_mychildprocess, NULL);
    return FALSE; /* ou TRUE */
    }
    La doc donne des indications précieuses pour l'utilisation sous Windows.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ok merci je testerais ça alors


Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 14h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 03h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 14h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 09h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 17h11

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