1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class PropertyEditor : public QWidget, // tu as peut etre choisi une classe de base moins générique ;)
public Visitor{
public:
virtual void visit(Cube const & c){
/* ce qui doit etre fait, spécifique à un cube */
}
virtual void visit(Sphere const & s){
/* ce qui doit etre fait, spécifique à une sphère */
}
virtual void visit(Paralelogram const & p){
/* ce qui doit etre fait, spécifique à un parallélogramme */
}
/* et tous les autres types dérivés de Geometry */
public slots :
/* n'oublions pas le slot auquel tu connecte le signal */
setCurrentEditable(Geometry * g){
/* c'est simple : on appelle la fonction accept de geometry */
g->accept(*this);
}
}; |
Partager