Developpez.com - Rubrique Projets

Le Club des Développeurs et IT Pro

Sortie de la première préversion de QExtend

Voici ce à quoi va ressembler le projet

Le 2010-04-12 18:35:39, par dourouc05, Responsable Qt & Livres
Update 17-12-2010
Code :
1
2
3
4
5
6
Bonjour.
Histoire de montrer que ce projet vie, vici une petite vidéo de la démo Morphing, exploitant les nouvelles classes ajoutées à QExtend.
http://www.youtube.com/watch?v=wi9h2rq8lGA

Si vous voulez vous amuser,n'hésitez pas à récupérer les sources et à compiler la démo ;)


update 6 juillet 2010

Oyé, oyé, braves gens, damoiseaux et damoiselles !
En ces jours ensoleillés, nous sommes heureux de vous présenter la version gamma de QExtend

Le but de cette version est de vous montrer à quoi va ressembler QExtend et avoir un maximum de retours de votre part. Voici ce que vous allez y trouver :
  • Emitter/Receiver : nouvelle méthode pour créer vos connexion ;
  • ExtendPtr et ObjectPtr : pointeur intelligent un peu particulier ;
  • Parser JSon ;
  • Système de log ;
  • Liste de QObject ;
  • Un tableau en deux dimensions ;
  • Un plugin DevIL pour la lecture d'image ;
  • Mesure de temps ultra précise ;
  • Gestion d'application avancée ;
  • Widget de visualisation d'image (attention ! dans la release, ça va dépoter !) ;
  • Un agrégateur de signaux pour en créer un nouveau(SignalCheckPoint) ;
  • Un planificateur d'action (ActionScheduler), qui permet de ne pas lancer un action si la précédente n'est pas finie et de la planifier juste après.Pour éviter les appels intempestifs, une seule planification est gardée.


Vous y trouverez également des démos pour illustrer l'utilité de ces composants, ainsi que leur méthode de fonctionnement. La doc en français et en anglais se trouve ici :
http://qt.developpez.com/doc/qextend/0.0.1/fr/
http://qt.developpez.com/doc/qextend/0.0.1/en/

Vous trouverez un 7z des sources sur cette page :
http://projets.developpez.com/attach...tend_V0.0.1.7z

Pour compiler, c'est très simple :
* Pour Qt creator : ouvrir le fichier qextend.pro ;
* Avec QMake : aller dans le repertoire racine et faire
  1. qmake -r
  2. nmake ou make suivant votre environnement de développement


N'hésitez pas à nous faire vos remarques ou à poser des questions à la suite de ce thread. Si vous avez des idées, n'hésitez pas à ajouter une demande sur Redmine



Bonjour,

Nous sommes heureux de vous annoncer la création du projet QExtend :
http://projets.developpez.com/projects/qextend

QExtend est une bibliothèque C++ développée par l'équipe Qt de la communauté Developpez.com. Son objectif est d'étendre et de simplifier l'utilisation de Qt ainsi que celle d'autres bibliothèques (Qwt, OpenCV...).

Le projet venant de commencer, il n'y a pas encore énormément de choses disponibles sur le repository. Toutefois, nous pouvons vous faire part d'une bonne liste de fonctionnalités prévues :
* Pointeurs intelligents ;
* Manipulateurs de layouts, signaux/slots et XML ;
* Détection d'appui sur des touches du clavier ;
* Classes d'aide pour QGraphics ;
* Logger ;
* Widgets, comme un menu de fichiers récemment ouverts ;
* CUDA ;
* Qwt ;
* Trouver la grande question sur la vie, l'univers et le reste.

Et ce n'est qu'un petit résumé !

Si vous avez des questions, des remarques, des propositions, n'hésitez pas à nous les proposer sur ce thread. Si vous utilisez d'ores et déjà QExtend, nous vous proposons d'ajouter un tag [QExtend] au titre de votre message.

De plus, une fois connecté sur le gestionnaire de projets, vous pourrez aussi nous remonter les bogues rencontrées ou proposer des améliorations.

Si vous souhaitez participer au projet, manifestez-vous ici, nous vous recontacterons.

Envoyé par yan
Il y as déjà plus de 1000 lectures en 24 heure de fin de ce thread .
Je ne m'attendais pas à un tel intérêt :

Si vous avez envie de nous aider, ne serai ce qu'un petit peu, il y as différente manière possible :
  1. donner votre avis et vos encouragement sur ce thread
  2. proposer des évolutions dans redmine
  3. remonter des bug dans redmine

pour faire une demande d'évolution ou de correction de bug dans redmine, il vous suffit de vous connecter (même login/password que dvp) à cette page
http://projets.developpez.com/login
et de faire la demande sur cette page :
http://projets.developpez.com/projec...end/issues/new

à vous
  Discussion forum
58 commentaires
  • lollancf37
    Membre régulier
    Sa a l'air intéressant en tout cas !
    Je vais surement me remettre a faire des IHM en C++ avec le sourire ^^
  • manudwarf
    Membre éclairé
    CUDA ? Ça ne va pas en doublon avec le futur QtOpenCL ?
  • dourouc05
    Responsable Qt & Livres
    CUDA et OpenCL, c'est pas vraiment la même chose : NVIDIA implémente OpenCL avec CUDA, mais CUDA évolue plus vite (seul NVIDIA travaille dessus), a plus de fonctionnalités (pour le moment), et je n'ai pas encore entendu parler de projet professionnel utilisant OpenCL, au contraire de CUDA. Tu as aussi une belle série de projets pour simplifier CUDA (comme un port de la STL pour CUDA : tu prend ton code pour la STL, tu gères très basiquement - simple copie - les transferts vers le GPU, et tu gardes ton algo - ou alors tu changes des noms de variables qui auront changé). Tout ça pour dire que, actuellement, CUDA est plus avancé qu'OpenCL, c'est la référence pour le moment. Même si c'est pas très ouvert, contrairement à OpenCL.
  • manudwarf
    Membre éclairé
    Je faisais référence à l'annonce sur le QtLabs de la création du module QtOpenCL
  • bobti89
    Membre habitué
    Oui c'est une bonne idée Tout ca est très intéressant !
    J'aimerais bien y participer, ca me permettrait de faire quelques efforts de propreté dans mon code et d'apprendre plein de choses de Qt

    Il manque certaine chose à Qt et c'est pour ca que j'ai codé ma petite bibliothèque perso, c'est peut-être une occasion d'améliorer celle-ci et de la partager !

    Parmi les fonctionnalités rajoutées j'ai :
    • Gestion de fichiers binaires bits à bits.
      Il manque à Qt une classe comme QBitStream, même si je ne vois pas trop comment gérer ca. J'ai alors codé une classe FileBit qui contient un QFile (interface plus restrictive que QFile donc je ne peux pas hériter) et dont l'interface est :
      Code :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      bool open( const QString& filename, const QIODevice::OpenMode mode );
      bool isOpen();
      int read( unsigned int* value, const unsigned int bits_count );
      int readBit( unsigned int* value );
      //Ecrit `value` sur `bits_count` bits dans le fichier
      int write( const unsigned int* value, const unsigned int bits_count );
      bool eof() const;
      void close();
      quint64 size() const;
      Bon comme je disais il y a pas mal de choses à améliorer mais c'est une idée à approfondir !
    • Timer précis.
      Gestion de timer plus précis que la millisecondes. Ma classe gère Windows et UNIX récent avec une précision à la microseconde.
    • Classes pour gérer le SSE.
    • Arbre lexicographique (gestion de dictionnaire).
      Permet des requêtes extrêmement rapide pour savoir si un mot appartient à un dictionnaire.
    • Requêtes web pour trouver la définition d'un mot.
      Recherche automatique de définitions sur internet (en allant cherché sur wiktionary par exemple).
  • yan
    Rédacteur
    Envoyé par bobti89

    • Gestion de fichiers binaires bits à bits.
      Il manque à Qt une classe comme QBitStream, même si je ne vois pas trop comment gérer ca.
    QdataStream avec un QFIle?? en plus ca gère l'endian

    Envoyé par bobti89

    • Timer précis.
      Gestion de timer plus précis que la millisecondes. Ma classe gère Windows et UNIX récent avec une précision à la microseconde.
    • Classes pour gérer le SSE.
    • Arbre lexicographique (gestion de dictionnaire).
      Permet des requêtes extrêmement rapide pour savoir si un mot appartient à un dictionnaire.
    • Requêtes web pour trouver la définition d'un mot.
      Recherche automatique de définitions sur internet (en allant cherché sur wiktionary par exemple).
    très intéressant.
    Pour sse, est il possible de faire abstraction du système aussi facilement?
  • bobti89
    Membre habitué
    Envoyé par yan
    QdataStream avec un QFIle?? en plus ca gère l'endian
    QDataStream marche super bien, mais c'est ce que j'appelle de la gestion au byte et non au bit.
    Avec ma classe on peut écrire par exemple 7 sur 4 bits puis 10 sur 4 bits ce qui nous donne un octet qui contient en binaire : 01111010 ( 0111 = 7 et 1010 = 10 ). C'est très pratique pour écrire des flux compressé !
    Ah tien ca me donne une autre idée : une gestion d'archive (avec plusieurs fichiers et/ou dossiers) avec compression (par exemple une interface avec la bibliothèque de 7zip).

    Envoyé par yan
    Pour sse, est'il possible de faire abstraction du système aussi facilement?
    Non malheureusement, on est obligé d'écrire des fonctions qui testent si les instructions SSE sont présentes. Ma classe actuelle n'a pas ces fonctions, je ne sais d'ailleurs même pas comment on fait pour tester, mais elle permet d'écrire des choses comme ca :
    Code :
    1
    2
    3
    Float4 v( 0.0, 1.0, 2.0, 5.0 );
    v *= 2.0; //v contient ( 0.0, 2.0, 4.0, 10.0 )
    Float4 v2 = v * v; //v2 contient ( 0.0, 4.0, 16.0, 100.0 )
    Bien sur toutes ces opérations se font en une seule instruction processeur
  • DSGSLA
    Membre régulier
    Quelle est la licence d'utilisation de cette bibliothèque ?

    Plusieurs fois sur le forum de l'aide a été demandé pour un éditeur de code. Un éditeur de code comme QScintilla avec la coloration syntaxique et la complétion serait utile.
  • johnlamericain
    Rédacteur
    Envoyé par DSGSLA
    Quelle est la licence d'utilisation de cette bibliothèque ?
    La license est LGPL comme Qt.

    Envoyé par DSGSLA
    Plusieurs fois sur le forum de l'aide a été demandé pour un éditeur de code. Un éditeur de code comme QScintilla avec la coloration syntaxique et la complétion serait utile.
    Oui cette idée a déjà été proposé par Amnell en interne et sera très certainement implémenté dans QExtend. Je pense moi même y participer.
  • yan
    Rédacteur
    Envoyé par DSGSLA
    Quelle est la licence d'utilisation de cette bibliothèque ?
    LGPL