[GTK+] Positionnement des Widgets ...

Positionnement des Widgets ... [GTK+] - C - Programmation

Marsh Posté le 29-07-2004 à 22:49:15    

Je cherche à faire une petite fenêtre de connexion (avec login et mot de passe) et je n'arrive pas à obtenir la "mise en page" que je souhaite.  
 
Sur la première ligne je veux le label "Login" suivi d'une zone de saisie et sur une deuxième ligne je veux le label "Mot de passe" avec une zone de saisie.
 
Je veux que les deux labels soient alignés à gauche et que les deux zones de saisies soient l'une au dessus de l'autre et de la même longueur, comme ça :

Login         Zone_de_saisie_1
Mot de passe  Zone_de_saisie_2


Au départ j'utilisais deux boîtes horizontales mais dans ce cas les deux labels étaient (dans le meilleur des cas) centrés mais c'était bon pour les zones de saisie. Et je n'ai jamais réussi à placer les labels à gauche.
 
Ensuite j'ai utilisé deux boîtes verticales, une avec les labels et l'autre avec les zones de saisie, mais le problème est le même.
 
Vous auriez une idée ? Je ne vois pas comment aligner les labels sur la gauche de façon simple. :sweat:
 
Voilà ce que j'obtiens :

   Login      Zone_de_saisie_1
Mot de passe  Zone_de_saisie_2


Message édité par darkoli le 29-07-2004 à 22:50:16
Reply

Marsh Posté le 29-07-2004 à 22:49:15   

Reply

Marsh Posté le 30-07-2004 à 06:54:31    

T'as essayé en plaçant un tableau de 4x3 par exemple?
 
Bon je t'avouerai que j'ai jamais fais de GTK en C (uniquement avec glade pour du GTK#) mais moi pour arriver à ton résultat je passe par un tableau.
Dans une colonne tu mets les labels et dans l'autre les zones de textes.


---------------
http://anothergeekwebsite.com
Reply

Marsh Posté le 30-07-2004 à 09:21:41    

Non j'avoue que je n'ai pas essayé les tableaux ! Donc mon cas ça me donnerais :

!---------------------------------!
!    Login     ! Zone_de_saisie_1 !
!--------------!------------------!
! Mot de passe ! Zone_de_saisie_2 !
!---------------------------------!


Comme les cellules de ma colonne #1 feront la même largeur j'ai peur que les label soit une fois de plus centrés. Car je n'ai pas vu dans la doc une quelconque possibilité d'alignement à droite, à gauche, centré, ... :cry:
 
Mais cette possibilité doit bien exister quelque part. Je vais essayer avec glade pour voir si j'arrive à le faire, et surtout voir le source qui a été généré.

Reply

Marsh Posté le 30-07-2004 à 09:28:40    

Pour le faire avec Glade je peux t'assurer que les labels sont alignés verticalement.


---------------
http://anothergeekwebsite.com
Reply

Marsh Posté le 30-07-2004 à 10:45:11    

Niala a écrit :

Pour le faire avec Glade je peux t'assurer que les labels sont alignés verticalement.

Ok, je testerais ça ce soir.
Merci.

Reply

Marsh Posté le 30-07-2004 à 21:53:14    

J'ai trouvé !!!
 
En fait Glade utilise une fonction supplémentaire pour positionner le label : gtk_misc_set_alignment().
 
Pour un label positionné à gauche ça donne :

Code :
  1. gtk_misc_set_alignment(GTK_MISC(nom_du_labelr), 0, 0.5);

Il faut au moins utiliser la valeur GTK_FILL pour le paramètre xoptions de la fonction gtk_table_attach() lors de la mise en place du label dans le table pour que l'alignement soit pris en compte.
 
Donc ça donne :

Code :
  1. label_1=gtk_label_new("Login" );
  2. gtk_table_attach(GTK_TABLE(table), label_1, 0, 1, 0, 1, GTK_FILL, 0, 1, 0);
  3. gtk_misc_set_alignment(GTK_MISC(label_1), 0, 0.5);

Pour plus d'infos : http://developer.gnome.org/doc/API/gtk/gtkmisc.html. :D


Message édité par darkoli le 30-07-2004 à 21:54:19

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed