J'essaie de mettre une bordure autour d'une gtk_hbox. Mon IHM est divisée en 2 parties : une drawing aera en haut et en bas, une gtk_hbox composée de 6 labels. J'aimerais ajouter une bordure autour de la gtk_hbox. J'ai vu qu'il fallait inclure cette hbox dnas une gtk_frame et ajouter cette frame à la main_window. Mais ceci ne marche pas :

voici le bout de code en question ( voir en gras ce que j'ai tenté de faire ) :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*********************** Main Window ********************************/   

  main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title( GTK_WINDOW( main_window ), "WEBCAM - FPGA");

  g_signal_connect( G_OBJECT( main_window ), "destroy", G_CALLBACK (gtk_main_quit), NULL);

  /********************************************************************/

  /*********************** Label Widget *******************************/

  ptr_struct_GtkWidget->output_text=gtk_label_new("Output: ");
  ptr_struct_GtkWidget->output=gtk_label_new(output_current);
  gtk_label_set_justify(GTK_LABEL(ptr_struct_GtkWidget->output), GTK_JUSTIFY_CENTER);

  ptr_struct_GtkWidget->label_state=gtk_label_new("State :");
  ptr_struct_GtkWidget->label_current_state=gtk_label_new(char_current_state);
  gtk_widget_set_size_request(ptr_struct_GtkWidget->label_current_state,100,20);   
  gtk_label_set_justify(GTK_LABEL(ptr_struct_GtkWidget->label_current_state), GTK_JUSTIFY_CENTER);

  ptr_struct_GtkWidget->clock=gtk_button_new_with_label("Clock");
  ptr_struct_GtkWidget->reset=gtk_button_new_with_label("Reset");
  ptr_struct_GtkWidget->light=gtk_toggle_button_new_with_label("Light");
  ptr_struct_GtkWidget->noise=gtk_toggle_button_new_with_label("Noise");   


  /********************************************************************/

  /* Create a Fixed Container */
  fixed_output_text = gtk_fixed_new();
  fixed_output = gtk_fixed_new();
  fixed_state_text = gtk_fixed_new();  
  fixed_state = gtk_fixed_new();    
  fixed_clock = gtk_fixed_new();      
  fixed_light = gtk_fixed_new();        
  fixed_noise = gtk_fixed_new();          
  fixed_reset = gtk_fixed_new();        

  /*********************** Webcam Widget ******************************/      

  ptr_struct_GtkWidget->drawing_area = gtk_drawing_area_new();
  gtk_widget_set_size_request( ptr_struct_GtkWidget->drawing_area, opencvImage->width, opencvImage->height );

  /********************************************************************/

  g_signal_connect( G_OBJECT( ptr_struct_GtkWidget->drawing_area), "expose_event", G_CALLBACK (expose_event_callback), NULL);
  g_timeout_add( 100, ( GSourceFunc )time_handler, ( gpointer ) ptr_struct_GtkWidget->drawing_area );

  // Add webcam window 
  vbox = gtk_vbox_new (FALSE, 5);
  gtk_box_pack_start (GTK_BOX (vbox), ptr_struct_GtkWidget->drawing_area, expand, fill, padding);     

  // Add dialog window  
  dialog = gtk_hbox_new (FALSE, 5);  

  gtk_fixed_put(GTK_FIXED (fixed_output_text), ptr_struct_GtkWidget->output_text, 5,5);
  gtk_fixed_put(GTK_FIXED (fixed_output), ptr_struct_GtkWidget->output, 6,5);   

  gtk_fixed_put (GTK_FIXED (fixed_state_text), ptr_struct_GtkWidget->label_state, 7,5);            
  gtk_fixed_put (GTK_FIXED (fixed_state), ptr_struct_GtkWidget->label_current_state, 8,5);               

  gtk_fixed_put (GTK_FIXED (fixed_clock), ptr_struct_GtkWidget->clock, 30,0);
  gtk_fixed_put (GTK_FIXED (fixed_light), ptr_struct_GtkWidget->light, 31,0);   

  gtk_fixed_put (GTK_FIXED (fixed_noise), ptr_struct_GtkWidget->noise, 32,0);             
  gtk_fixed_put (GTK_FIXED (fixed_reset), ptr_struct_GtkWidget->reset, 33,0);                   

  gtk_container_add(GTK_CONTAINER( dialog), fixed_output_text);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_output);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_state_text);      
  gtk_container_add(GTK_CONTAINER( dialog), fixed_state);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_clock);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_light);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_noise);
  gtk_container_add(GTK_CONTAINER( dialog), fixed_reset);

  gtk_box_pack_start (GTK_BOX (vbox), dialog, expand, fill, padding);      

  // create frame 
  frame_dialog = gtk_frame_new(NULL);

  gtk_container_add( GTK_CONTAINER(frame_dialog), dialog);      
  gtk_container_add( GTK_CONTAINER(frame_dialog), vbox);        
  gtk_container_add( GTK_CONTAINER(main_window), frame_dialog);


  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "pressed",  G_CALLBACK(input_signal),char_clock);      
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(update_state),ptr_struct_GtkWidget);
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->light);                  
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->noise);                     
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "pressed", G_CALLBACK(input_signal),char_reset);         
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(update_state),ptr_struct_GtkWidget);                  
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->light);                  
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->noise);                     


  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->light), "toggled", G_CALLBACK(toggle_button_callback),char_light);         
  g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->noise), "toggled", G_CALLBACK(toggle_button_callback),char_noise);         

  gtk_widget_show_all( main_window );
  gtk_main();
  cvReleaseCapture( &capture );

  return 0;
}
Quelqu'un pourrait me dire ce qui ne va pas ?