Codes sources Qt

Ajouter un nouvel élément

Les performances du mois

Des livres
2
Démineur
1
Un éditeur de réseau de places et transitions (RdP)
3

    ang Des livres

    Éditeur : Nokia + 7 Kio
    Une interface de gestion de livres, basée sur le module QtSql et les capacités de modèles/vues.

    ang Un navigateur avec QtWebKit

    Éditeur : Nokia + 96 Kio
    Un simple navigateur exploitant les possibilités du module QtWebKit.

    ang Un éditeur de réseau de places et transitions (RdP)

    Licence : GPL
    Un réseau de places et transitions est un réseau de Petri (Petri Net ou RdP) généralisé et non coloré (sans extensions).

    L'application PTNET Editor permettra de dessiner/editer graphiquement un tel réseau, de l'animer, de l'analyser en construisant et visualisant son graphe de couverture/accessibilité, de le convertir en fichier image et de le sauvegarder en tant que document PNML.

    1. Compiler l'application

    L'application a été développée et testée sous GNU/Linux OpenSUSE 12.3 (KDE). Elle est basée sur le Framework Qt 4.8.4 et utilise aussi:
    • Boost Graph Library 1.49 (BGL) pour construire le graphe de couverture/accessibilité d'un RdP (graphgenerator.cpp)
    • la bibliothèque GraphViz 2.28 pour visualiser le graphe convenablement (graphvisualizer.cpp).

    => Vous devez installer ces bibliothèques pour compiler le code source!

    Important: Pour éliminer les deux étapes suivantes (étape 2 et 3) et tester l'application directement, consultez le
    fichier source tabwidget.cpp et commentez les étape [0], [1] et [2] de la méthode bool validateXml(QFile& file, MessageHandler &messageHandler). Autrement dit, modifiez cette méthode pour qu'elle retourne toujours true indiquant que le document PNML est valide.

    2. PNML

    PNML (Petri Net Markup Language) est un format standard d'échange des réseaux de Petri. L'application est basée sur ce standard. Vous pouvez télécharger le grammaire (spécification) de ce language ici: http://www.pnml.org/grammar.php.

    Notre application est un éditeur des RdP sans extensions. Donc nous somme pas besoin de tous les fichiers de grammaire téléchargé. On va juste utiliser 4:
    • pnmlcoremodel.rng : Contient la définition de PNML Core Model.
    • ptnet.rng : Contient les déclarations des types ajoutées par les réseau de places et transitions : initialMarking (marquage initial d’une place) et inscription (poids d’un arc).
    • anyElement.xsd : Utilisé pour définir une grammaire non fournie par le standard PNML. Dans notre cas ceux sont les éléments ToolInfo.
    • conventions.rng: utilisé par ptnet.rng.

    3. Convertir les fichiers RNG

    Le grammaire PNML est décrit en langage RELAX NG (.rng). Celui ci est un langage de description de document XML alternative de XML Schema. RELAX NG n’est pas supporté par le module XML de la bibliothèque Qt. Donc on doit convertir les fichiers de format RNG en format XSD! A ce propos, on va utiliser l'outil Trang.

    Trang est un outil libre permettant de convertir des schémas RELAX NG en XML Schema. Vous pouvez le télécharger ici:http://code.google.com/p/jing-trang/downloads/list.

    Convertir les fichiers rng en des fichiers xsd ?

    1. Dans le répertoire /home/~Download/Trang, créez un dossier et le nommez rng.
    2. Créez un autre dossier dans le même répertoire /home/~Download/Trang et le nommez xsd.
    3. Copiez les 4 fichiers rng dans le dossier rng.
    4. Pour convertir les 4 fichiers, utilisez la commande : java -jar trang.jar -I rng -O xsd rng/ptnet.rng xsd/ptnet.xsd.
    5. les fichiers RNG sont maintenant convertis en fichiers XSD et copiés dans le dossier xsd.

    L'application va utiliser les 4 fichiers xsd pour valider un document PNML décrivant un RdP !

    Donc, vous devez procéder comme suit:

    6. Copier les 4 fichiers xsd dans le répertoire : ptnet/shemas
    7. Modifier le fichier anyElement.xsd en supprimant la balise xs:group et en ajoutant la balise contenue dans le fichier ptnet/shemas/anyElement.txt

    4. Tester l'application

    Une fois l'application est compilée et les fichiers XSD sont générés (étapes 1-5) et ajoutés au répertoire /ptnet/shemas et modifiés (étapes 6-7), vous pouvez le tester en utilisant les exemples contenus dans le dossier ptnet/examples.
    • Pour changer les attributs d'une Place, Transition ou un arc faite un double-clique sur l'élément correspondant.
    • Pendant l'animation d'un RdP et pour franchir (tirer) une transition faite un clique gauche sur elle.




    Bonne utilisation :)

    ang Géolocalisation avec GoogleMaps

    Licence : Autre
    Quand dans vos données vous avez écrit :
    1, rue de la halle 50500 Carentan
    Vous vous dites intérieurement : je sais où cela se situe... mais ne serait-ce pas mieux de le voir sur une carte ? Vous pouvez utiliser un webservice Google pour cela.

    ang ImageAnalyzer

    Licence : Autre
    But
    ===============
    Petite application mobile et PC permettant de retrouver ses amis sur les réseaux sociaux par leur photo.

    Contexte
    ===============
    Cette application est très basique (la comparaison des photos se fait pixels par pixels)
    Elle est juste faite pour montrer comment développer une application avec Ubuntu SDK
    et l'installer sur le système mobile Ubuntu Touch.

    Contenu
    =============
    Elle est développée en QML/Javascript et C++

    Exécutable
    =============
    on a un exécutable pour Ubuntu 13.10 et deux pour le système mobile Ubuntu Touch.

    ang Un color picker (version QML)

    Licence : Autre
    Il répond à la même question que la version C++ mais en QML, avec le tout nouveau Qt Quick.

    ang Contactes Book

    Licence : Libre
    Cette application est codé en Cpp + Qt 4 .
    elle vous permet de sauvegarder des informations sur vos contactes tél que :
    -nom -e-mail -phone -photo (si existe) -adresse -job -plus
    et vous offre une gestion complète de vous contactes (Ajout,Modification,Suppression)

    ça vous permet de voir l'utilisation des fichiers et des Widgets on Qt 4.
    aussi des boite de dialogue personnalisé.

    ang TileLayout

    Licence : Libre
    À mi-chemin entre le QGridLayout et le FlowLayout donné en exemple officiel, le TileLayout est un layout sous forme de grille dynamique, c'est-à-dire que le nombre de lignes et de colonnes varient lorsque le widget parent est redimensionné.
    Quelque soit la taille du widget parent, les tuiles vont occuper toute sa largeur et se déporter vers le bas sur plusieurs ligne. Si le widget parent n'est pas assez grand pour afficher toutes les tuiles, un ascenseur vertical classique va apparaître.
    Optimisé pour afficher des tuiles de même dimensions, il peut être utilisé pour afficher un album photo, ou encore présenter un écran d'accueil où chaque tuile se comportera comme un lien.
    L'exemple fournit montre une grille de QLabel affichant des nombres mais il est facilement remplaçable par des QPushButton par exemple.

    N'hésitez pas à partager vos remarques et suggestions !

    ang Un lecteur multimédia avec Phonon

    Licence : Autre
    Un exemple complet de lecteur audio réalisé avec Phonon.

    ang Un interpréteur avec des expressions régulières

    Licence : Autre
    Cet interpréteur se présentera sous forme d'une boîte de saisie, où l'utilisateur pourra entrer différentes commandes qui généreront des "morceaux" de code C++, de manière à simplifier le travail du programmeur. Commençons par établir une liste des commandes reconnues :

    un ensemble de commandes destinées à la gestion des fichiers, sous la forme FILE_xxx ;
    un ensemble de commandes destinées à la gestion des chaînes de caractères, sous la forme STRING_xxx.

    ang Un updater de base

    Licence : Autre
    Ce premier updater est très basique : il peut télécharger un fichier sur Internet, sans plus, quand l'utilisateur appuie sur un bouton.

    L'article associé

    ang Des tests unitaires basiques

    Éditeur : Rémi Achard +
    Le module QtTest permet de réaliser simplement ses tests unitaires et benchmark avec le framework Qt. Nous allons commencer par écrire un test simple permettant de vérifier que la fonction QString::toUpper copie correctement la chaine de caractères en convertissant en majuscule.

    ang Exécuter un test sur un ensemble de données

    Éditeur : Rémi Achard + 2 Ko
    QtTest permet de définir un ensemble de données (scénarios) pour un test, puis de réaliser le test sur chaque scénario défini.

    ang Afficher une vidéo avec MPlayer

    Licence : Autre
    Comment visualiser une vidéo dans Qt ? Comment intégrer MPlayer et Qt ?

    Qt, dans son souci de framework généraliste, n'implémente pas toujours tout ce dont on peut avoir besoin, surtout lorsque cela n'est pas d'usage courant. Les vidéos font partie de ce qui n'était pas couvert par Qt (maintenant supporté depuis la 4.4 par le biais de Phonon). Cependant, un grand nombre de librairies et autres backends existent. Nous allons voir comment utiliser l'un d'entre eux : MPlayer.

    ang Sidebar

    Licence : Gratuit pour usage non commercial
    Un widget tout simple qui permet d'ajouter des actions et de les présenter de la même façon que les deux applications citées dans la description courte.

    ang Exemple d’utilisation de la technique d'instanciation

    Licence : Libre
    L'instanciation est une technique permettant de dessiner plusieurs copies du même objet. Cette technique sera intéressante dans des scènes contenant des objets similaires : une forêt d'arbre, le feuillage d'un arbre, une foule, l'herbe d'une pelouse.
    Cet article de mon blog présente un exemple d'utilisation de l'instanciation: la technique d'instanciation

    ang Visualisation à partir d'une webcam

    Licence : LGPL
    Visualisation du flux vidéo depuis une webcam en utilisation les API windows + Qt

    ang Créer un menu contextuel (clic droit) en QML

    Licence : Autre
    Le code proposé permet de créer en QML un menu contextuel qui apparaîtra suite à un clic droit et qui se fermera en cas de sélection d'une option ou si le curseur de la souris sort du menu contextuel.

    ang Téléchargeur d'albums Picasa

    Licence : Autre
    Un petit utilitaire permettant de télécharger un album Picasa. Il n'est pas vraiment optimal (un seul téléchargement à la fois). Il devrait permettre d'illustrer un peu l'utilisation de QHttp pour une récupération d'une page.

    ang Lecture de fichiers LZMA avec QIODevice

    Licence : Autre
    Comment dériver de QIODevice ? Comment compresser des données avec un algorithme très puissant mais libre en utilisant Qt ? En regardant de plus près cette source : elle vous présente la manière de dériver de QIODevice pour compresser des données à l'aide de LZMA.

    Voir aussi le SDK LZMA (licence libre) (850 Ko)

47 éléments

 
 
Partenaires

PlanetHoster