je cherche desesperement un cours ou tutorial ou meme un livre (en français) qui explique comment faire de l'interface graphique en Scheme
quelqu'un peut il m'aider merci
je cherche desesperement un cours ou tutorial ou meme un livre (en français) qui explique comment faire de l'interface graphique en Scheme
quelqu'un peut il m'aider merci
Bonjour,
Je ne connais pas de tutoriel concernant les interfaces graphiques, et encore moins en Français
Cependant, avec Google et un peu de logique, on peut trouver de quoi faire du "graphique". Des pré-requis en programmation objet sont les bienvenus.
Exemple pour afficher une fenêtre (note : utiliser un langage graphique comme MrEd)
make-object x% : permet de créer un objet de classe x%
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 (define maFenetre (make-object frame% "Barre de titre")) ; création de l'objet maFenetre (send maFenetre min-width 200) ; définition de sa largeur mini (send maFenetre min-height 200) ; définition de sa hauteur mini (send maFenetre resize 300 300) ; redimensionnement de la fenetre (send maFenetre show #t) ; affichage de la fenetre
send x : permet d'appeler des méthodes sur l'objet x
Avant de poster, merci de consulter les règles du forum
Salut
Mon premier prog graphique en Scheme (j'ai repris un peu le code de Juju_41)
Tu peux trouver le manuel de référence sur internet : "PLT MrEd: Graphical Toolbox Manual"
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 ;; fonctions de gestion d'évènements associées aux éléments des boîtes de dialogues ;; elles doivent être définies avant les éléments eux-mêmes ;; fonction de dessin des canvas deux arguments, le canvas et le contexte de dessin (define (canvas_draw cv dc) ;; j'obtiens le texte associé au canvas (let ((txt (send cv get-label))) ;; j'obtiens la taille du canvas (letrec-values ([(x y) (send cv get-size)]) ;; j'obtiens la taille de la zone d'écriture (letrec-values ([(dx dy f1 f2) (send dc get-text-extent txt)]) ;; j'écris en centrant le dessin (send dc draw-text txt (/ (- x dx) 2) (- (/ y 2) dy)) ) ) ) ) ;; fonction appelée par le bouton, elle affiche un "message box" (define (button_fonc x y) (let ((x (make-object dialog% "Message Box" maFenetre 100 80 500 100))) (let ((y (make-object canvas% x null canvas_draw "Click"))) (send x show #t) ) ) ) ;; définition de la boîte de dialogue ;; définition de la fenêtre principale (define maFenetre (make-object frame% "Ma première fenêtre")) ; création de l'objet maFenetre (send maFenetre min-width 200) ; définition de sa largeur mini (send maFenetre min-height 200) ; définition de sa hauteur mini (send maFenetre resize 300 300) ; redimensionnement de la fenetre ;; je lui adjoins une aire de dessin ou d'écriture avec un texte associé (define monCanvas (make-object canvas% maFenetre null canvas_draw "Hello World")) ;; je lui adjoins maintenant un bouton (qui sera centré) et sous le canvas (define monBouton (make-object button% "Bouton" maFenetre button_fonc)) ; création de l'objet bouton (send monBouton min-width 150) ; définition de sa largeur mini (send monBouton min-height 20) ; définition de sa hauteur mini (send maFenetre show #t) ; affichage de la fenetre
Il faut déjà connaître la programmation des fenêtres, les envois de messages et autres pour s'en sortir à mon avis.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager