Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Une petite aide pour démarrer please
Envoyé par: jacqueline

J'ai une idée de programme en C++ ( pour comprendre et utiliser la programmation objet )

Je voudtrais afficher des valeurs dans des fen^tres et rendre mon programme interactif avec des boutons (placé dans les fenêtres).


J'ai découvert Kdevelopp et Qt designer.


Si je choisis l'option "dialog" pour construire des fenêtres : ça m'a l'air assez simple de créer différentes formes avec un jeu un jeu de fenêtres qui contiennent des boutons et et zones d'affichage mais :

- on peut créer une sorte d'interactivité entre ces boutons et fenêtres avec les signaux et slots..

J'étais donc assez optimiste puis en allant un peu plus loin avec la doc , dans les signaux et slots j'ai l'impression que c'est un "truc" qui va tourner tout seul dans son coin et qui ne sera pas géré par mon programme en C++.

Or je veux contrôler l'affichage et les appuis sur les boutons avec mon programme en C++. ( ça me parait plus simple à maîtriser).

- enfin ça me sort un fichier source qui ne ressemble en rien à du C++ ( ça doit être du XML ). j ne vois donc pas comment je vais pouvoir relier ça simplement avec mon programme en C++ ( l'objectif étant d'utiliser ce langage.

Ca me parait donc très compliqué à utiliser.

Si je choisis au lancement de QT designer "projet C++" je n'ai plus le même menu "tools" pour composer mon affichage de fenêtres, et je n'arrive même pas à rentrer quelque chose parmi les options proposées, alors que j'ai pu créer des formes des fenêtres et des boites de dialogue ou d'affichage avec "dialog". ( refus de créer un template chois dans la liste ( et là une autre question : lequel choisir ??? )


J'ai beau lire la doc du C++, celle de Kdevelop , et celle de Qtdesigner, je ne trouve pas comment on faire un truc simple.

Ce devrait pourtant être simple de faire un programme en C++ qui affiche telle ou telle fenêtre , avec telles ou telles données, et qui lise sur quel bouton on a cliqué.


Lorsqu'on lit une doc du C++, on a l'impression qu' on fait un programme qui tourne en rond et à part afficher hello dans un terminal, on ne peut rien faire d'autre, car l'interface avec le monde extérieur n'est pas vraiment explicité. ( on est plus dans les années soixante à tapper les données sur des cartes perfo...)


Lorsqu'on fait un programme de dialogue avec "dialog " j'ai le sentiment de faire un truc à part qui va tourner dans son coin et je ne vois pas comment le relier à un programme en C++


Dites moi où je me plante sur le PRINCIPE. Soyez indulgents, je débute dans la programmation sous Linux ( mais j'en ait fait pas mal sur d'autres gros systèmes finalement beaucoup plus simples ) je vais encore lire la doc...

Mais avant de me lancer dans l'écriture d'un programme, je voulais être sure de pouvoir dialoguer avec. Si on trouve des explications fort détaillées pour chacun de ces outils, comment on les relie entre eux, les explications de principes : nada de nada !

J'avais déjà demandé des conseils sur le langage à utiliser pour faire de la programmation. On m'a conseillée Lazarus , que je n'ai pas par contre j'ai des outils comme kdevelopp et Qt designer qui m'ont parus intéressants et performants et que je souhaiterais utiliser.


Compte tenu du projet que je voudrais faire sur le long terme, et que je pensais traiter avec des tableaux, en lisant une doc sommaire du C++, j'ai trouvé comment traiter mon problème avec la notion de langage objet qui me parait bien plus adaptée et plus simple à programmer, ce qui m'a motivée pour étudier le langage objet qui est toujours resté pour moi un truc assez touffu. J'arriverais à la faire.

Mais avant de me lancer je voudrais être SURE de pouvoir l'interfacer avec l'écran et des données dans un fichier ( avec un programme simple une fenêtre avec des boutons et une zone d'affichage..

Faire un programme en C++ qui fait print "hello" dans un terminal ou qui travaille sur des données dont on a fixé la valeur en tête de programme ou rentrées au clavier, je sais faire , mais ça ne sert pas à grand chose et ça n'a rien de motivant.


Mais le démarrage est compliqué. Un petit coup de main s'il vous plait.

( c'est l'utilisation de Qt designer "dialog qui m'a aidée à comprendre l'orgaanisation "objet " et à l'adapter pour traiter d'autres choses )


Jacqueline




Poste le Wednesday 6 October 2004 12:18:14
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: tuxfanch

Salut Jacqueline,

ça peut peut-être t'aider :
[fara.cs.uni-potsdam.de]

le XML que tu vois, c'est la description de l'interface :
y'a tel bouton a tel endroit, quand la fenêtre principale reçoit tel signal de sa part, elle lance telle callback etc, etc ...

Quand tu choisis "projet C++", c'est pour faire des démons ou des progs qui n'ont pas besoin d'interface graphique ; si tu choisis "Dialog", alors il va chercher toute une pagaille de librairies dont il a besoin (en locurrence la librairie QT qui est à la base de l'interface KDE)

L'avantage de t'y prendre comme ça c'est que tu vas vraiment apprendre le "langage objet" mais surtout l'utilisation d'un IDE tel que KDevelop (qui, je l'espère, est promis à un bel avenir) : il est vraiment excellent, largement au niveau des suites visual, Bordland et compagnie.

Si tu veux développer plus vite et plus facilement, je te conseille cependant d'utiliser python ; mais pour l'instant, je n'ai pas l'impression que QTdesigner le gère (l'outil qui fait que tu peux "dessiner" tes boutons etc) même si KDevelop le gère très bien : du coup tu serais obligée de "coder" ton interface graphique ... à voir ce qui représente la plus grosse partie de ton applicatif : le core ou l'interface ?


Bon courage en tout cas et amuses toi bien !

Poste le Thursday 7 October 2004 08:02:29
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: jacqueline

Tuxfanch.

Merci de ton message encourageant.

Kdevelop , c'est pas mal !

En trouvant une bribe d'info par ci, une autre par là et en faisant plein d'essais avec kdevelop, je crois avoir pigé ( en gros... )

Il y a deux entrées dans Kdevelop : projet et fichier.

Il faut donc que je crée un projet C++ et une fois qu'il est créé je rentre par "fichier" "Nouveau" et on a à nouveau la boite de dialogue où l'on peut choisir "widget" ou "dialog", voire rajouter une autre module de programme en C++.

kdevelopp dans "projet C**" crée un répertoire "interface utilisateur".

Dedans il y a un fichier "(Nom du projet Cpp)ui.rc" et le fichier "(Nom du projet graphique).ui"

( si on crée l'interface graphique en faisant comme je faisais : Outils et lancement direct de Qt designer, il crée bien le le fichier (Nom du projet graphique).ui, mais il le place n'importe où, il n'est pas dans l'interface utilisateur et donc il n'est pas géré à la compilation.

J'ai lu qq pqrt qu'il convertissait le XML en C++ avec un programme.

Je pense que c'est comme ça qu'il intègre l'interface graphique dans le programme en C++ pour le compiler et faire l'édition de liens .

Je ne regrette pas de m'être acharnée, ( au début je me demandais ce que c'était cette usine à gaz qui ne simplifait pas la vie ) par qu'effectivement ça gàre pas mal de choses.

Cependant : je CALE ENCORE sur un truc :

A la création du projet C++, j'ai des erreurs.


Il a fallu que je vérifie la config de Kdevelop, il me manquait des bibliothèques "doc html" ( j'ai donc vérifié les libs, les paquetages... j'en ai rajouté, mais il ne trouve pas la lib "(mon rep home) /.kde et suivants...


Un autre problème les chemins d'accès à Qt2 et kde2 dans une fenêtre du configurateur ( vides , je ne sais pas quoi y mettre ???? )


Enfin plus dur : il plante sur /bin/sh : permisson non accordée. j'ai lu pas mal d 'articles là dessus et sur les fichier batch avant de toucher aux droits pour ne pas faire n'importe quoi.

c'est compliqué,car kde marche plusieurs plateformes., donc les sh , les bash, et autres.. il fait plein de tests là dessus..

J'ai lu les fichiers .h que génère kdevelop.


J'ai cru comprendre qu'il crée des scripts bash si on utilise kdevelop pour la première fois.

Il crée d'autres scripts bash pour faire la compile ( mes vieux souvenirs sur mon système : Pour lancer une compile complète : bin oui on avait un fichier batch assez long d'ailleurs..).



Une autre erreur : trop d'arguments dans une cde , d'un fichier qu'il lance à la création du projet.... Je dois trouver un éditeur avec les numéros de ligne pour m'y retrouver....


Je vais encore m'acharner parce qu'une fois que ce genre de problème est réglé , ça doit être un super outil pour faire du développement, avec le débogage, la gestion de la doc , des versions, pour les modifs..

Problème avec sa doc en ligne : en anglais passe encore , mais la police est minuscule et je ne vois rien.


J'ai enregistré les captures d'écran pour me refaire un doc "aide mémoire, et la liste des fichiers qu'il génère. J'essayerais de comprendre à quoi ils servent.. et je mettrais un commentaire en face dans ma doc. Il faut que j'aille trouver la doc de kdevelop dans le root et que je l'agrandisse.. pour pouvoir la déchiffrer..lol ! ( moi j'ai toute ma doc complèmentaire sélectionnée et bien classée dans une partition à part et sur Cd rom, parce que parfois c'est dur à retrouver sur le net. )

C'est vraiment trop pratique de faire une interface graphique avec Qt désigner, et çà n'apporterait pas grand chose de vouloir le programmer manuellement. l'important est de comprendre ce que ça fait et comment ça fonctionne.


Lorsque j'aurais fait une fenêtre avec trois bricoles, je vais regarder le source en XML, puis l'objet en C++ et regarder comment on intègre les valeurs affichées ou saisie et les évènements avec un mini prog en C++ .


J'avais essayé glade en premier, puis encore une fois après avoir essayé Qt designer, il n'y a pas photo, je vais rester avec Qt designer, sans regrets : Glade est trop limité..

Bref c'est passionnant ! Bien sur mon programme n'avance pas, mais je n'ai pas le sentiment de perdre du temps.

Mais alors sur le net pas beaucoup de doc sur kdevelop. Dommage !

Jacqueline.







Poste le Thursday 7 October 2004 11:04:00
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: tuxfanch

Bon, pour peut-être répondre au plus d'un coup :
[www.kdevelop.org]

j'ai eu je me souviens des soucis comme le tiens, mais c'était avec KDevelop 2 ; j'en avait ch*** pour tout foutre d'aplomb mais je ne me souviens plus de mes manip' (désolé, ça date ...)

si t'es encore sur Kdevelop2, ça vaut vraiment le coup de migrer vers KDevelop 3 : plus rapide, plus performant, plus clair ... que du bon.

par contre les tutoriels devraient rester sensiblement les même.

Poste le Thursday 7 October 2004 13:10:57
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: jacqueline

J'ai bien la versions 3

Je viens de dépouiller les erreurs qu'il sort à la création de projet.

J'ai trouvé les lignes des progs qui sortent les erreurs, à la création ( sauf le /bin/sh ) j'ai sorti un extrait.


J'ai pris une copie du fichier de sortie après j'ai ajouté mes commentaires et mes questions. j'essaye d'éclaircir peu à peu.

Si tu as le temps d'y jeter un oeil....

J'ai pas trouvé le prog kdevelop dans les répertoires du root, j'ai fait tous les répertoires où il y a des bin.. un autre nom ???


Jacqueline


Voilà mon fichier mémo pour trouver le problème :

KDEVELOP CREATION du PROJET

de nom : projcpp1name dans le rep :/ESSAIKdevelop

Edition pendant le processus de création

( mes commentaires dans le fichier de sortie sont pécédés d'un /)

=====================================================

Starting with installation

App [ProjCpp1name] Type [kde2mini]


unpacking <template.tar.gz> in </home/Jackie/ESSAI Kdevelop./Projet Cpp1/projcpp1name>...
unpacking <admin.tar.gz> in </home/Jackie/ESSAI Kdevelop./Projet Cpp1/projcpp1name>...

changing files [kde2mini]...

Starting with configuration

creating configuration files...

>make -f Makefile.dist
This Makefile is only for the CVS repository
This will be deleted before making the distribution
/
/
/
*** Creating acinclude.m4
*** Creating list of subdirectories
*** Creating configure.in
*** Creating aclocal.m4
*** Creating configure
*** Creating config.h template
*** Creating Makefile templates
*** Postprocessing Makefile templates
*** Creating date/time stamp
*** Finished



Don't forget to run ./configure
If you haven't done so in a while, run ./configure --help

/ je n'ai pas fait cette commande ./configure
/ à quel moment falliat il la faire ? j'ai fait l'install auto de mon programme ( RAS )

/la commande ./configure -- help ne marche pas
en plus c'est pour configurer quoi ? Je sais pas.

/est que c'est ce qui explique l'erreur de:
permission sur le /bin/sh dans la deuxième partie de la création.




KDEHOME=/home/Jackie/.kde;
make configure...

/ Et lui il vient de configuer /home/jackie/.kde j'ai vérifié , le fichier kdevelopp rc y est bien.

>LDFLAGS="" CFLAGS="-O0 -g3 -Wall" CXXFLAGS="-O0 -g3 -Wall"
>./configure


creating API documentation...
>kdoc -p -d '/home/Jackie/ESSAI Kdevelop./Projet Cpp1/projcpp1name/projcpp1name-api' -n ProjCpp1name *.h
kdoc: processing projcpp1name.h
Generating documentation in html format...
creating projcpp1name.pot
>make -f admin/Makefile.common package-messages


READY

/ouf c'est fini pour la première partie
___________________________________________________

/ DEUXIEME PARTIE ( mais ça ne s'arrète pas entre les deux... il enchaïne.lol !)
--------------------------------

sh: ./configure: /bin/sh: bad interpreter: Permission non accordee

/ ERREUR N°1

/ça commence mal : "permision non accordée" pour accéder à /bin/sh

/ ERREUR N°2

warning: ProjCpp1name inherits unknown class 'QWidget'

/c'est peut être normal qu'il ne trouve pas le QWidget, pas eu le temps de le créer.... ( projet en C++ ) à moins qu'il en cherche un autre ?

/ERREUR N° 3

QWidget hasn't a reference. at /usr/share/kdoc/kdocHTMLutil.pm line 576, <SOURCE> line 39.
QWidget hasn't a reference. at /usr/share/kdoc/kdocHTMLutil.pm line 576, <SOURCE> line 39.


/ERREUR N°4

./admin/cvs.sh: line 435: test: too many arguments

/Cà s'arrète là ! ca ne plante pas, mais j'ai pu rajouter un "dialogue " après a avec Qt. et il l'a bien pris. ( rien compilé encore.)
====================================================
Explications des erreurs à la création
=====================================================
Erreur N° 1

Recherche de l'erreur ? la configuration du /bin/sh lors de :

sh: ./configure: /bin/sh: bad interpreter: Permission non accord?e

la commande ./configure est faite en super utilisateur ?

/bin/sh , c'est user:root groupe:root, les droits : rwx r-x r-x


Compléter: chercher le fichier qui est lancé à la création de projet, ses droits.

=========================================================================
Erreur N° 2

A compléter.

=========================================================================

Erreur N° 3

" extrait de /usr/share/kdoc/kdocHTMlutil.pm ligne 576"
-------------------------
head2 wordRef

Parameters: word

Prints a hyperlink to the word's reference if found, otherwise
just prints the word. Good for @refs etc.

=cut

sub wordRef
{
my ( $str, $rootnode ) = @_;
my $out;

confess "rootnode is undef" if !defined $rootnode;

return "" if $str eq "";

my $ref = kdocAstSearch::findRef( $rootnode, $str );

return esc($str) if !defined $ref;

if ( defined $ref->{Ref} ) {
$out = hyper( $ref->{Ref}, $str );
}
else {

"/Ligne 576 i?i /" warn fullName( $ref ). " hasn't a reference.";


$out = $str;
}

return $out;
}

=head2 textRef

---------------------
explication à trouver ( il manque une bibliothèque HTML pourla doc ?



=========================================================================
ERREUR N°4

"EXTRAIT de /admin/cvs/sh ligne 435" d'où est sortie l'erreur "

Trop d'arguments" dans la commande ? il y a un grep juste avant !

-------------------------
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-$KDEDIR/include}/kde.pot" \
messages
) 2>&1 | grep -v '^make\[1\]' > $tmpname

" LIGNE 435 " : test -s $tmpname && { echo $subdir ; cat "$tmpname"; }

test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
rm -f $subdir/_translatorinfo.cpp
rm -f $subdir/_transMakefile
done
rm -f $tmpname

-----------------------

Essayer de retrouver les fichiers, refaire la cde grep ( vérifier le nombre d'arguments et refaire la commande test à la main ?


====================================================


Poste le Thursday 7 October 2004 16:04:19
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: jacqueline

UNE PRECISION :


Dans le fichier /ETC/PASSWORD tous les utilisateurs y compris root , sont affectés au shell : /bin/bash


Je me demande bien ce que Kdevelop va bidouiller dans /bin/sh lors de la création de projets, alors qu'il est censé tester le bash qu'un utilise, lela version, le nouyau et tout le tralala j'ai trouvé ça dans les commentaires du programme configure et d'un autre.....

Son problème d'accès à /bin/sh vient peut être de là ! Si il ne prend pas le bon.... d'autant plus que le fichier "configure m'appartient" et que j'ai le droit d'écriture et d'exec. et il fait ça en super utilisateur ./configure/sh

Jacqueline

Poste le Thursday 7 October 2004 17:27:32
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: tuxfanch

attend je cherche

Poste le Saturday 9 October 2004 12:47:58
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: tuxfanch

le binaire de KDevelop s'appelle kdevelop, chez moi il est dans /usr/bin

lorsqu'il t'invite à lancer configure, c'est pour créer le premier Makefile. Normalement (ça veut dire chez moi), s'il ne trouve pas le Makefile au moment de construire le projet, il doit proposer automatiquement de lancer le configure ==> ne pas l'avoir lancé ne doit pas avoir d'incidence sur le reste (au pire, il suffit de le lancer puis de relancer le projet)

./configure --help ne renvoie rien ? Il est probable qu'il y ait eu des erreurs à la création du configure ; normalement ça renvoie la -longue longue- liste des paramètres qu'on peut passer à configure

Citation

Erreur 1
chez moi, /bin/sh est un lien vers /bin/bash :
$ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 27 21:47 /bin/sh -> bash

Citation

Erreur 2
bon, là, c'est plus marrant, je n'utilise jamais QT ; pour ton problème de QWidget, il ne trouve pas la définition de la classe : tous les widgets que tu peux poser sur ta feuille héritent de la classe QWidget et il ne la trouve pas, donc il râle. C'est probablement un problème de chemin vers la librairie QT.

Citation

Erreur 3
amha, c'est lié à l'erreur 2, résoudre la 2 résoudra la 3

Citation

Erreur 4
J'ai pas la réponse, mais vu qu'apparemment tu va développer seule, ne t'embêtes pas avec un système de versionning : c'est fait pour des projets plus gros, ça va t'emm... plus qu'autre chose (c'est utiliser une bombe H pour dératiser sa maison)


bon, je suis d'accord qu'avec ça t'es pas bien avancée ...
y'a pas mal de test que je ne peux pas faire dans l'instant : je tourne sous gentoo/amd64 et y'a pas QTdesigner par exemple. Si t'as du nouveau fais moi signe et j'essayerai de donner des réponses plus utiles.



------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Saturday 9 October 2004 13:48:09
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: jacqueline

Merci tux !

Il ne reste plus que la une et la quatre , pour les autres : problème de librairies! ( la vérif des dépendances, de ma sdistrib ne peut pas tout gérer, elle empêche juste le crash ... Au passage j'ai installé un système de recherche de fichiers plus performant...

Pour une autre lib de doc qui me manquait ( non signalée dans mon exemple ) : -> google : paquetage , nom du fichier et hop je suis tombée sur le site des auteurs du paquetage SGTML TOOLS, nécessaire pour faire la doc.. Je l'ai trouvé dans ma distrib : cinq minutes pour l'installer ! et j'ai toute la doc avec. essai de kdevelop : plus d'erreur sur ce point.

Par hasard , j'ai trouvé un super cours pdf sur python, j'ai profité de l'install des paquetages manquants pour le mettre...


Avec mon prog de recherche , j'ai trouvé toute la doc de Qt et kdevelopp dans les reps ( un peu éclatée, dans les reps et sous reps..: Ksnapshot pour ma doc perso...

Bien d'accord : kdevelop c'est une centrale nucléaire pour dératiser une baraque... mais au passage , j'ai appris ( ou tout du moins ça m'a obligée à fouiner un peu partout dans linux : les makefile les makconf, les autoconf.) Merci à Léa au passage et à d'autres aussi. Je pensais y échapper ! lol ! mais on ne comprend bien les choses que lorsqu'on est confrontée au problème et j'ai horreur de caler devant un truc ! ca servira pour d'autres choses aussi !

Dans un mois l'instal : de kdevelop n'aura plus de secret pour moi, j'ai déjà bien avancé...

Quitte à rajouter quelques "echos" par ci par là dans les sources, pour laisser plus de traces... pour savoir pourquoi il y a trop d'arguments dans l'erreur 4, mais je saurais...

Super le logiciel libre, ça change de l'écran bleu et de sa doc défaillante. Là au moins j'ai le numéro de ligne où se passe le problème Et puis il y a toujours la ressource d'envoyer un mail avec les détails aux auteurs de l'application.


J'ai une petite idée (faudra que j'essaye ça aussi : on peut se configurer le bash pour le faire causer un peu ou beaucoup.. ou à la folie.. si le mien est mal configuré pour kdevelop ( il n'y a pas de bug dans kdevelop : hypothèse de départ ) c'est un problème de config de quelque chose...


Je ne vais pas faire ça au pif.. faut lire la doc et essayer quelques manips à la console avant.


J'ai capté un truc , par rapport aux gros systèmes plus homogènes avec leurs applis propriétaires : installer une application sur des bécanes qui tournent sur des OS différents, des versions différentes... des configs différentes, c'est plus compliqué et ça justifie 2000 lignes de tests et la recompil des sources de certains modules de kdevelop et de leurs adaptations au système avant de lancer la compil d'un projet de trois lignes en C++ avec interface graphique, mais c'est assez bien commenté à l'intérieur.


Bref c'est passionnant et tout ce que j'aurais appris au passage me servira pour la suite...


A plus...


Jacqueline

Poste le Sunday 10 October 2004 02:38:06
Répondre     Citer    
Re: Une petite aide pour démarrer please
Envoyé par: tuxfanch

c'est surtout pour CVS que je te disais de pas te prendre la tête.
perso, pour faire un helloWorld je passe par kdevelop (et vi aussi mais ça c'est autre chose ...) : quand tu commence ton projet, il te demande quel système de versionning tu veux (par ex : cvs, subversion ...), là tu lui mets none comme ça tu t'évites ces ennuis :-)

an remember :
share da coooooooode haaaaaaaaacker, and you'll be freeeeeeeeeeeeeeee
(chanté par RMS, ça donne ...)



------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Sunday 10 October 2004 09:06:47
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Une petite aide pour démarrer please
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons