Bonjour,

je viens de me lancer dans la programmation C++ avec GUI et j'ai choisi pour cela de développer avec Dev C/ C++ et FLTK.

J'ai cependant une question qui me paraît basique mais après deux jours de Google intensif, je ne trouve toujours pas la réponse.

Sans plus tarder, voici mon code, lequel provient d'un tutoriel :

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
 
#include <FL/Fl.H> 
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Int_Input.H>
#include <FL/Fl_Output.H>
#include <iostream>
#include <string>
using namespace std;
 
 
class SimpleWindow : public Fl_Window{
 
   public:
      SimpleWindow(int w, int h, const char* title );
      ~SimpleWindow();
      Fl_Button* copy;
      Fl_Button* quit;
      Fl_Int_Input* inp;
      Fl_Output* out;
 
   private:
      static void cb_copy(Fl_Widget*, void*);
      inline void cb_copy_i();
 
      static void cb_quit(Fl_Widget*, void*);
      inline void cb_quit_i();
};
 
 
int main (){
 
   SimpleWindow win(300,200,"SimpleWindow");
   return Fl::run();
}
 
 
 
SimpleWindow::SimpleWindow(int w, int h, const char* title):Fl_Window(w,h,title){
 
   begin();
      copy = new Fl_Button( 10, 150, 70, 30, "C&opy");
      copy->callback( cb_copy, this );
 
      quit = new Fl_Button(100, 150, 70, 30, "&Quit");
      quit->callback(cb_quit, this);
 
      inp = new Fl_Int_Input(50, 50, 140, 30, "Input:");
      out = new Fl_Output(50, 100, 140, 30, "Output:");
   end();
   resizable(this);
   show();
}
 
 
 
SimpleWindow::~SimpleWindow(){}
 
 
 
void SimpleWindow::cb_copy(Fl_Widget* o, void* v) { 
 
    ( (SimpleWindow*)v )->cb_copy_i();
}
 
 
void SimpleWindow::cb_copy_i() {
 
   out->value(inp->value());  
}
 
 
void SimpleWindow::cb_quit(Fl_Widget* , void* v) {
 
   ( (SimpleWindow*)v )->cb_quit_i();
}
 
 
void SimpleWindow::cb_quit_i() {
 
    hide();
}
Avec ce code, l'utilisateur rentre un nombre dans 'inp' et après avoir cliqué sur copy, le nombre s'affiche dans 'out'.

Seulement, ce que je cherche à faire, et qui me paraît à priori plus utile pour la suite, c'est d'arriver à récupérer la valeur de 'inp' pour faire des calculs sur cette dernière et ensuite aficher le résultat sur 'out'. Comme pour faire par exemple quelquechose d'aussi simple qu'un convertisseur ou l'utilisateur rentre un montant et le programme fait un calcul du type res=montant * 6; et affiche le tout par 'out' par exemple.

Et là, j'ai essayé d'imaginer toutes les syntaxes possibles mais je sèche.

D'ailleurs, si il existe une classe Fl_Int_input pour permettre de rentrer des integers, pourquoi le la classe Fl_Output n'accèpte-t-elle que des const *char[] ?

J'ai de plus en plus la sensation en tout cas de ne pas me poser les bonnes questions.

Merci pour votre aide,
JSK