Salut ...
J'essaye de faire apparaitre des courbes dans une fenêtre. Au début il n'y en a aucun, et en les sélectionnant dans une autre fenêtre (par une combo box) on peut faire apparaitre les courbes que l'on veut en cliquant sur un bouton (add)
De même quand les courbes sont présentes je peux décider de ne plus vouloir la visualiser et cliquer sur le bouton hide qui fera que la courbe sélectionner ne s'affichera plus ...
Cela marche très bien à part qu'à chaque ois que je déselectionne une courbe j'ai le message suivant qui s'affiche en boucle ...
(Brain.exe:2560): Gdk-CRITICAL **: file gdkdraw.c: line 650 (gdk_draw_drawable): assertion `GDK_IS_DRAWABLE (drawable)' failed
Je voulais savoir si quelqu'un en connaissait la raison ? Est-ce qu'il est en train d'essayer d'afficher le widget que je viens d'enlever de la fenêtre ? Y a-t-il un moyen de lui dire qu'il ne doit plus l'afficher ?
Voilà le code que j'utilise pour désafficher ...
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
|
void PsGTKWidget::removeCurves(){
gtk_widget_hide_all(vBoxCurves);
for(int i=0; i<nbElectrodes; i++){
if(curvesVisibles[i]){
g_object_ref(hBoxList[i]);
gtk_container_remove(GTK_CONTAINER(vBoxCurves), hBoxList[i]);
gtk_widget_queue_clear(hBoxList[i]);
}
}
gtk_widget_hide_all(vBoxCurves);
// J'enlève tous les widgets visibles
// Puis je met à jour le tableau curvesVisibles
// Puis j'appelle la fonction qui réaffiche les widgets restants
void PsGTKWidget::showCurves(){
for(int i=0; i<nbElectrodes; i++){
if(curvesVisibles[i]){
gtk_box_pack_start(GTK_BOX(vBoxCurves), hBoxList[i], TRUE, TRUE, 0);
gtk_widget_show_all(hBoxList[i]);
}
gboolean b = GTK_WIDGET_DRAWABLE(hBoxList[i]);
}
gtk_widget_show_all(vBoxCurves);
if(GTK_WIDGET_VISIBLE(curves)){
gtk_widget_hide_all(curves);
gtk_widget_show_all(curves);
}
}
} |
Au passage ...
Quand je déssine des courbes avec des Gtk_Curves je n'obtiens rien de mieux que ça :

Quelqu'un saurait comment dessiner des belles courbes facilement ? (avec le même widget de préférence)
Partager