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 :

Centrer le texte d'un bouton multiligne


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Centrer le texte d'un bouton multiligne
    Bonjour,

    Je rencontre un problème avec gtk3 en C et je ne parviens pas à trouver de réponse ailleurs sur le net, j'espère vraiment que vous pourrez m'aider !

    Mon objectif est d'avoir un bouton (gtk_button) contenant un label sur plusieurs lignes. Le soucis, c'est que j'aimerais que toutes les lignes soient centrées, et par défaut ce n'est pas le cas : la ligne la plus grande est centrée et toutes les lignes plus petites sont alignées à gauche.

    Voici quelques images pour vous illustrer le problème :

    Ce que j'ai :
    Nom : cur.png
Affichages : 80
Taille : 8,7 Ko

    Ce que je veux :
    Nom : obj.png
Affichages : 85
Taille : 7,5 Ko

    Pour séparer mes lignes j'utilise un \n dans la chaine de mon label.

    Informations supplémentaires :
    - OS : CentOS 7
    - Version gtk : gtk3
    - Langage utilisé : C

    Merci d'avance pour vous retour, je suppose qu'il doit exister une astuce ou une propriété pour régler ça, mais impossible de trouver par moi même...

    Cordialement,

    zeusxduff

  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.

    A priori un bouton créé avec gtk_button_new_with_label (); ne te permet pas de jouer sur l'alignement du texte. Il faudrait récupérer le GtkLabel interne. J'avoue ne pas avoir trouvé comment l'atteindre.

    Donc il faut créer un GtkButton dans lequel tu vas insérer un GtkLabel. Tu pourras alors modifier les attributs de ce dernier à ta guise.

    Voila un exemple minimaliste pour obtenir ce que tu veux.

    Nom : Capture d’écran_2020-11-17_15-51-24.png
Affichages : 77
Taille : 5,9 Ko
    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
    #include <gtk/gtk.h>
     
    int
    main(int argc, char **argv)
    {
      gtk_init (&argc, &argv);
     
      GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      GtkWidget *button = gtk_button_new ();
     
      // Création du label avec modification de la justification
      GtkWidget *label  = gtk_label_new ("Texte centré\nsur\nle bouton");
      gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
     
      // Ajout du texte dans le bouton
      gtk_container_add (GTK_CONTAINER (button), label);
     
      // Ajout du bouton à la fenêtre
      gtk_container_add (GTK_CONTAINER (window), button);
     
      // Connexion du signal "destroy' pour fermer correctement la fenêtre
      g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
     
      gtk_widget_show_all (window);
     
      gtk_main ();
     
      return 0;
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    C'est exactement ce qu'il me fallait !
    En effet je n'arrivais pas à accéder au label contenu dans mon bouton, mais ta solution de rajouter le label manuellement fonctionne à 100% !

    Merci beaucoup pour cette réponse claire et rapide !

    Cordialement,

    zeusxduff

  4. #4
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Il faudrait récupérer le GtkLabel interne. J'avoue ne pas avoir trouvé comment l'atteindre.
    Comme ça normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GtkWidget *label = gtk_bin_get_child (GTK_BIN (button));

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

Discussions similaires

  1. centrer le texte d'un bouton
    Par quentinodia dans le forum Général Python
    Réponses: 2
    Dernier message: 11/04/2014, 14h54
  2. Texte d'un bouton multiligne
    Par manshivas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/08/2009, 11h08
  3. fireworks : centrer un texte dans un bouton
    Par ml1234 dans le forum Autres
    Réponses: 0
    Dernier message: 31/05/2009, 20h55
  4. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 21h56
  5. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33

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