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 :

Positionner un WidGet dans une table


Sujet :

GTK+ avec C & C++

  1. #1
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut Positionner un WidGet dans une table
    Salut,

    Suite à mon précédent post, je me suis lancé dans la création d'une table.
    Cela s'est plutot bien passé, seul bémol, je ne comprend pas trop comment on positionne ses objets
    J'ai fait une table de 5lignes, 9colonnes, j'aimerais mettre mon label en haut à gauche (disons de la lig0-col0 à lig1-col1) mais je vois pas trop comment faire...
    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelIP,0,0,1,1);
    mais c'est pas ça du tout
    J'ai regardé le cour concernant les tables sur GtkFr mais je ne comprend pas ce qu'ils entendent par :
    les paramètres left_attach et right_attach, les positions à gauche et à droite du widget et les paramètres top_attach et bottom_attach, les positions supérieures et inférieures du widget
    Voila, si quelqu'un arrive à m'eclairer, merci à lui !
    Sorry
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  2. #2
    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 : 46
    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
    Pour ton cas ici présent ce serais plutot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelIP,0,1,0,1);
    Pour préciser le placement on va dire que ca part du coin supérieur gauche au coin supérieur droit et du coin supérieur gauche au point inférieur gauche !
    Et qui plus est, c'est dans cette ordre, donc si tu te dis ca en posant tes widgets, tu ne devrais plus avoir trop de problèmes. Le mieux etant biensur de se faire un schéma quadrillé sur papier et ca ira encore mieux
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Ok merci pour ta reponse, c'est vrai qu'avec un papier c'est plus simple.
    J'ai finalement créé une table de 5lignes, 9 colonnes (car au final j'aurai 8 objets).
    J'ai positionné mes 2 labels comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelIP,0,2,0,1);
      gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelPort,0,2,3,4);
    Mais le 1er n'est pas vraiment en haut de la fenetre, et le deuxieme est tres tres en dessous du premier..comme si les cases de la matrice étaient énormes
    Peut etre reduit il automatiquement la taille des cases en fonction du nombres d'objets dans la table..je verrai par la suite si ça s'ameliore
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  4. #4
    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 : 46
    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
    Pour la place que ca prend dans la fenetre, tout dépend de la taille de ta fenetre. En effet, GTK ajuste le positionnement et la taille des widgets en fonction de la taille de la fenetre qui contient la table !
    On peut changer un peu le comportement de la table avec la fonction gtk_table_attach
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Mouai bah non il redimentionne pas tout seul la taille des cases..
    J'ai rajouté 2 zones de saisies..je voulais donc positionner comme ceci :
    Label1
    ZoneSaisie1
    Label2
    ZoneSaisie2
    Voila que ça soit jolie quoi !
    J'ai donc codé ceci comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelIP,0,2,0,1);
      gtk_table_attach_defaults(GTK_TABLE(pTable),pLabelPort,0,2,2,3);
      gtk_table_attach_defaults(GTK_TABLE(pTable),pZSaisieIP,0,2,1,2);
      gtk_table_attach_defaults(GTK_TABLE(pTable),pZSaisiePort,0,2,3,4);
    Dans une table de 4 lignes 9 colonnes, cela me donne ceci :
    Label1

    ZoneSaisie1


    Label2

    ZoneSaisie2

    C'est pas tres beau
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  6. #6
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par CSoldier
    Pour la place que ca prend dans la fenetre, tout dépend de la taille de ta fenetre. En effet, GTK ajuste le positionnement et la taille des widgets en fonction de la taille de la fenetre qui contient la table !
    On peut changer un peu le comportement de la table avec la fonction gtk_table_attach
    Je viens juste de voir ta reponse, ma fenetre fait : 450*450 (j'ai mis un peu au pif )
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  7. #7
    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 : 46
    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
    Si tu ne fait qu'une colonne de widget, pourquoi pas le faire avec un gtk_vbox tout simplement ? Les tables c'est bien pour faire des interface assez avancées mais pour ce que tu veut faire:

    Label
    ZoneDeSaisie
    Label
    ZoneDeSaisie

    Les tables c'est un peu lourd je trouve !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par CSoldier
    Si tu ne fait qu'une colonne de widget, pourquoi pas le faire avec un gtk_vbox tout simplement ? Les tables c'est bien pour faire des interface assez avancées mais pour ce que tu veut faire:

    Label
    ZoneDeSaisie
    Label
    ZoneDeSaisie

    Les tables c'est un peu lourd je trouve !
    C'est le début, à la fin j'aimerais avoir quelque chose du genre :

    Label__________bouton________bouton
    ZoneDeSaisie______Zone de Saisie
    Label
    ZoneDeSaisie________Bouton_______Bouton

    Sinon, je viens de reduire ma fenetre, c'est maintenant beaucoup mieux !
    Merci pour ton aide

    Sorry
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

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

Discussions similaires

  1. python: gestion de positionnement des widgets dans une fenêtre
    Par noramokh dans le forum Général Python
    Réponses: 2
    Dernier message: 04/05/2014, 17h21
  2. Remplacer un widget dans une table
    Par sluke dans le forum GTK+ avec Python
    Réponses: 4
    Dernier message: 23/12/2008, 13h02
  3. [PostgreSQL] Positionner un enregistrement dans une table
    Par christgh dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2008, 16h45
  4. [WD10] positionnement dans une table
    Par nath-0-0 dans le forum WinDev
    Réponses: 1
    Dernier message: 21/02/2007, 10h32
  5. Réponses: 4
    Dernier message: 02/02/2007, 08h41

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