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

Discussion :

taille de bouton fixe


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 113
    Points : 53
    Points
    53
    Par défaut taille de bouton fixe
    Bonjour,

    comment imposer la taille d'un bouton, même si je change le label?

    J'ai crée l'interface avec Glade.

    Mon appli est un GtkWindow, contenant un GtkGrid, dont les cellules contiennent, par exemple, des GtkButton.
    Le GtkGrid est "homogène".
    Je m'étais dis, mon Gtk Window a une taille fixe, si mon GtkGrid est homogène, la largeur des cellules est fixe aussi. Un de mes GtkButton est instancié avec le label: "nouvelle mesure"
    Or, si je met à jour le label avec un string plus grand, le GtkButton s'élargit, sa cellule aussi, toutes les cellules aussi car homogène, le Gtkgrid aussi et le GtkWindow aussi (pourtant non redimensionnable dans les options sous glade)

    Puis-je figer la taille des GtkButton, mais en fait plus généralement de tous les GtObjects, y compris le GtkWindow? (quitte à recevoir une erreur si je veux écrire un label trop grand.)

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2009
    Messages
    1 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : juin 2009
    Messages : 1 381
    Points : 2 036
    Points
    2 036
    Par défaut
    Bonjour,

    pour commencer, je vais rappeler quelque chose d'important: les interfaces à taille fixe, c'est le mal.
    On a passé les 15 dernières années a essayer d'en sortir. Les gestionnaires de fenêtres permettent de nos jours de coller des fenêtres au bord de l'écran, et les applications doivent s'adapter à l'utilisateur, pas l'inverse.

    Ceci étant dit, tu peux regarder du côté de la propriété hexpand de ton boutton:
    https://developer.gnome.org/gtk3/stable/ch30s02.html

    Tu peux sans doute récupérer le label et remplacer le texte en trop par des points de suspension:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GtkWidget *label = GTK_BIN(button)->child;
    gtk_label_set_elipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
    Si tu as accès au GtkLabel à l'intérieur du GtkButton dans Glade, tu dois pouvoir configurer l'ellipsize mode directement là bas.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 113
    Points : 53
    Points
    53
    Par défaut
    tous mes objets ont des hexpand et vexpand false, effectivement réglés dans glade (enfin ils n'apparaissent pas dans le xml, false étant la valeur par défaut)
    et ça bouge quand même si je met du texte trop long

    je vais peut être essayé l'ellipsize, pas dispo dans glade, mais je crois que le mieux finalement est de prévoir des boutons suffisament larges pour que les différents label passent dedans sans demander plus de place.
    Parceque si je ne veux pas que ça s'élargisse quand le texte dépasse, ça veut dire que j'admets de perdre un bout de texte : bof bof

  4. #4
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2009
    Messages
    1 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : juin 2009
    Messages : 1 381
    Points : 2 036
    Points
    2 036
    Par défaut
    Dans ce cas réfléchit à:
    • soit utiliser un texte plus direct et plus court pour ton bouton
    • ou mettre un message explicatif en dehors du bouton, et un texte court dans le bouton
    • ou si c'est vriament long comme explication, ajoute un bouton d'aide pour expliquer comment utiliser ton application


    Dans tous les cas, utiliser un verbe d'action pour ton bouton, et suis autant que possible les HIG (guide de règles de conception d'interface graphique) de GNOME:
    https://developer.gnome.org/hig/stable/

    Voici par exemple ce qu'ils disent sur les boutons:
    https://developer.gnome.org/hig/stable/buttons.html.en
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

Discussions similaires

  1. [RCP][IHM] Vue avec taille et position fixe
    Par barbu0055 dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 21/12/2007, 14h40
  2. Taille des bouton, cases à cocher etc ..
    Par Arola78 dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2006, 16h25
  3. [ Eclipse2.1 ][ Plugin ] limiter la taille des boutons
    Par whilecoyote dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2005, 16h08
  4. [Conception] Taille des formes fixes au retour d'exécution
    Par jmdeffet dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/06/2005, 09h07
  5. [Linux]Pb de taille de bouton dans eclipse
    Par zolive dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 29/12/2004, 13h34

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