sy3ns
Messages postés80Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention16 avril 2008
-
4 mars 2006 à 23:50
razily
Messages postés250Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention 4 décembre 2013
-
18 févr. 2009 à 17:47
#include <stdlib.h>
#include <gtk/gtk.h>
#define LARGEUR 600
#define LONGUEUR 400
// le probleme c'est jai qune ligne de bouton et non pa un damier de boutton
void OnDestroy(GtkWidget *pWidget, gpointer pData)
{
/* Arret de la boucle evenementielle */
gtk_main_quit();
}
int main(int argc,char **argv)
{
/* Declaration du widget */
GtkWidget *pFenetre;
GtkWidget *pVOthellier;
GtkWidget *pHOthellier[8];
GtkWidget *pContourHaut[8];
GtkWidget *pContourGauche[8];
GtkWidget *pCase[8];
int i,j;
gtk_init(&argc,&argv);
/* Creation de la fenetre */
pFenetre=gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* Definition de la position */
gtk_window_set_position(GTK_WINDOW(pFenetre), GTK_WINDOW_TOPLEVEL);
/* Definition de la taille de la fenetre */
gtk_window_set_default_size(GTK_WINDOW(pFenetre), LARGEUR, LONGUEUR);
/* Titre de la fenetre */
gtk_window_set_title(GTK_WINDOW(pFenetre),
"damier");
/* Connexion du signal "destroy" */
g_signal_connect(G_OBJECT(pFenetre), "DestruirepFenetre", G_CALLBACK(OnDestroy), NULL);
/* Creation de la GtkBox verticale */
pVOthellier = gtk_vbox_new(TRUE, 0);
/* Ajout de la GtkVBox dans la fenetre */
gtk_container_add(GTK_CONTAINER(pFenetre), pVOthellier);
/* Creation de la box horizontale */
for(i=0;i<=7;i++)
pHOthellier[i] = gtk_hbox_new(TRUE, 0);
/* Creation des boutons */
for(i=0;i<=7;i++)
pCase[i] = gtk_button_new_with_label("Bouton 1");
/* Ajout de la GtkHBox dans la GtkVBox */
for(i=0;i<=7;i++)
gtk_box_pack_start(GTK_BOX(pVOthellier), pHOthellier[i], TRUE, TRUE, 0);
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 5 mars 2006 à 19:46
Soit tu créés un hbox dans lequel tu mets ton vbox qui contient tes 8 hbox. Mais tu pourras pas régler précisément la taille.
Soit tu peux utiliser un GtkFixed, qui te permet de placer des objets,
en donnant leurs coordonnées en pixel. D'ailleurs tu pourrais utiliser
ca au lieu de ta série de hbox:
sy3ns
Messages postés80Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention16 avril 2008 5 mars 2006 à 12:44
En fait je debute sur gtk je voudrais plutot une reponse concrete
les tables je maitrise pas du tout.
et si ya que 8 bouton en faite jai essayer de mettre dans une vbox 8 hbox et dans chaque hbox une bouton autrement dit:
sy3ns
Messages postés80Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention16 avril 2008 5 mars 2006 à 19:30
maintenant jai reussi a faire un damier
ms je voudrais savoir comment mettre ceci
qui se trouve dans une fenetre 400 X200 dans une fenetre 600X400
en gros comm sa il me restera de la place pr mettre des menu ou autre autour du damier
bouton1 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton8
bouton11 bouton22 bouton23 bouton24bouton25 bouton26bouton27 bouton28
bouton21 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton38
bouton31 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton48
bouton41 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton58
bouton51 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton68
bouton61 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton78
bouton71 bouton2 bouton3 bouton4 bouton5 bouton6 bouton7 bouton88
razily
Messages postés250Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention 4 décembre 2013 18 févr. 2009 à 17:47
salut,
moi aussi suis débutant sur gtk et je dois construire un labyrinthe comme projet . mais mon problème c'est d'insérer ou de dessiner les cases !!
face à ta question ce serait mieux si tu utilises des tables comme widget !! :
exemple :
#include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *Table;
GtkWidget*Fenetre;
GtkWidget*boutton;
/*création et attachement de la table*/
Table=gtk_table_new(3,2,TRUE); /*3 lignes et 2 colonnes TRUE pr avoir la même taille des cases*/
gtk_container_add(GTK_CONTAINER(Fenetre), GTK_WIDGET(Table));
/*création bouton*/
boutton = gtk_button_new_with_label(values[pos]);
/*attacher un bouton dans la table */
gtk_table_attach_defaults(GTK_TABLE(table), button, nbre_colonne_inférieure,nbre_colonne_supérieure, nbre_ligne_inf, nbre_col_sup);
/*par exemple si tu veux mettre un bouton à la case ligne 3 et colonne 2*/
gtk_table_attach_defaults(GTK_TABLE(table), button, 1,2, 2, 3);