Ajouter un splashscreen à son application Qt

Posté par seiyar81 le 3 mai 2010 | Laisser un commentaire (0)

Qu’est-ce qu’un splashscreen ?

Sous ce nom un peu barbare se cache tout simplement cette image (ou écran) qui s’affiche au lancement d’un logiciel. Affichant dans la plupart des cas des informations sur les créateurs du logiciels ou sur le chargement en cours.
C’est là que le splashscreen prend tout son intérêt, car on peut ainsi « cacher » à l’utilisateur un temps de chargement très ou trop long ou bien le tenir au courant de l’avancement du chargement (plugins, modules etc…).

Comment ajouter un splashscreen à son application Qt ?

Qt, ce framework que nous aimons tous, possède une classe pour gérer les splashscreen : QSplashScreen.
Partons du principe que vous possédez déjà une application GUI, et que vous souhaitez rajouter un QSplashScreen. Vous devez donc avoir un code dans votre fichier main.cpp qui ressemble à peu près à ceci :

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    /*
     Une opération longue ...
    */

    w.show();
    return a.exec();
}

C’est ici le code de base généré par QtCreator à la création d’un projet GUI. Voici le code très similaire avec l’ajout du QSplashScreen :

#include <QtGui/QApplication>
#include <QtGui/QSplashScreen>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    QSplashScreen screen;
    screen.setPixmap(QPixmap("images/splash.png"));
    screen.show();

    /*
    On simule une opération longue pour l'exemple
    */
    sleep(10);

    screen.hide();

    w.show();
    return a.exec();
}

On a juste inclus le header « #include <QtGui/QSplashScreen> » et ensuite ajouté une image à afficher.
L’opération longue est ici simulée par un sleep de 10 secondes, mais je mettrai un jour cet exemple en application avec un système de plugins.
Car oui on peut aussi créer des plugins pour son application avec Qt, mais ce sera pour une autre fois !

Catégorie: Qt | Laisser un commentaire (0)

Firebug en version 1.5 et ses extensions

Posté par seiyar81 le 22 janvier 2010 | Laisser un commentaire (0)

Tout bon développeur Web utilise, ou tout du moins, connaît Firebug ! C’est l’extension Firefox la plus utilisée par les développeurs Web !
Pour ceux qui ne la connaissent pas, elle permet d’analyser la page en temps réel, le CSS, le Javascript/AJAX, le code HTML, DOM etc… réellement indispensable elle vient de passer en version 1.5.
Parmi les changements annoncés, amélioration des panneaux CSS, Javascript et Réseau, une meilleur gestion des points d’arrêt etc, le détails des fonctionnalités mises est disponible ici.

Mais ce qui ajoute encore plus de ‘charme’ à cette extension ce sont ses divers extensions. Voici une petite liste des extensions vraiment indispensables :

  • FireCookie : permet de manager vos cookies directement
  • FirePHP : permet d’analyser sa page PHP en rajoutant seulement un petit bout de code
  • FireQuery : pour débugger les codes jQuery
  • Pixel Perfect : permet de contôler le positionnement an ajoutant une image au dessus de la page
  • FireRainbow : colore le code Javascript dans Firebug
  • YSlow : analyse le contenu de la page et propose des solutions pour améliorer son chargement
  • SenSEO : donne des informations sur l’optimisation du référencement de la page
  • FirePicker : ajoute un color picker pour le CSS
  • Plus d’extensions ici

Voilà avec ça vous êtes parés pour développer sous Firefox si ce n’était pas déjà le cas !

Catégorie: Internet | Laisser un commentaire (0)

Qt 4.6 est sortie

Posté par seiyar81 le 9 décembre 2009 | Laisser un commentaire (0)


Sortie le 1er Décembre,  cette version 4.6 du framework maintenu maintenant par Nokia, apporte son lot de nouveautés intéressantes.

- Un support de Symbian OS
- Un meilleur support de Windows 7 et Mac OS 10.6
- Le support des interfaces tactiles
- Une meilleure gestion des animations grâce au projet Kinetic
- Manipulation du DOM des pages Web
- …

A télécharger d’urgence ici.

Catégorie: Qt | Laisser un commentaire (0)

Configuration et Utilisation de Vim 5/5

Posté par seiyar81 le 7 décembre 2009 | Laisser un commentaire (0)
news-vim

Déjà la fin de ce tutoriel snif :’( Peut être pas aussi complet que d’autres, j’ai surtout voulu parler de ce qui me semblait essentiel pour un développeur travaillant avec Vim.

On va commencer cette dernière partie par l’auto-complétion, comment l’activer, comment ajouter des mots-clés etc…
Pour l’activer c’est très simple, comme partout ailleurs vous devez avoir commencé un mot et ensuite taper Ctrl+n pour accéder à la liste de mots-clés correspondants. Vim vous indiquera alors soit ‘Motif introuvable‘ soit vous proposera de ‘parcourir’ les correspondances à l’aide des combinaisons de touches Ctrl+n pour avancer et Ctrl+p pour revenir en arrière.

A savoir que par défaut Vim recherche dans le document courant les occurences.

Il est possible de lui rajouter des listes de mots-clés pour la coloration syntaxique. On utilise pour cela une commande simple :

:syntax keyword {group} {keyword} ...
// ou :syn keyword {group} {keyword} ...

{group} correspond à un nom de groupe de syntaxe. Par exemple si vous ouvrez le fichier ‘~/.vim/syntax/php.vim’ vous pourrez y voir des groupes de syntaxe comme phpFunctions, phpMethods, phpStatement ou encore phpType.
Qu’à cela ne tienne on va rajouter nos fonctions persos :

:syn keyword phpFunctions ma_fonction_qui_roxx ma_fonction_qui_suxx

Mais il est plus intéressant d’ajouter tous nos mots-clés, nos fonctions etc dans un seul fichier et de l’inclure :

:runtime! syntax/fichier.vim

:runtime! effectue une recherche dans le ‘runtimepath’ ($HOME/.vim ou $VIM/vimfiles) du fichier syntax/fichier.vim. Il est donc préférable que vous placiez votre fichier dans ce dossier.

Maintenant une astuce que je trouve tout bonnement indispensable, binder la commande php5 afin de vérifier la syntaxe du document et éventuellement l’exécuter.

Rajoutez ceci à votre fichier de configuration de Vim :

// Ctrl+M pour exécuter le fichier
autocmd FileType php noremap :w!:!/usr/bin/php5 %

// Ctrl+L pour vérifier la syntaxe
autocmd FileType php noremap :!/usr/bin/php5 -l %

Extrêmement pratique et fait gagner beaucoup de temps !

Pour finir je link un article sur l’utilisation de ctags avec Vim. L’auteur y explique comment ajouter une librairie, ici le Zend Framework : Article (en anglais)

J’espère que ce tutoriel a été utile, bientôt la présentation de quelques plugins très utiles pour Vim !

Catégorie: Linux | Laisser un commentaire (0)

Créer un éditeur de texte avec Qt 4 et QScintilla

Posté par seiyar81 le 23 novembre 2009 | Laisser un commentaire (0)
Qt

QScintilla est un portage de la librairie Scintilla vers le framework Qt permettant l’édition de texte, la coloration syntaxique, repliage du code etc…

Pour l’utiliser il vous faudra installer, si ce n’est déjà fait, le framework Qt : ici.
Puis une fois Qt installé, il faudra télécharger Qscintilla : ici.
Pour l’installer, ouvrez l’invité de commande de Qt (Qt Command Prompt), placez-vous dans le répertoire extrait et allez ensuite dans le répertoire Qt4 :

cd Qt4
qmake
make
make install
Ou sous Windows : qmake & make & make install puis
copy %QTDIR%\lib\qscintilla2.dll %QTDIR%\bin

Ceci fait, vous pouvez commencer à créer votre première application. Voici un exemple créant simplement une fenêtre avec un éditeur :

#include 
#include 
#include 

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QsciScintilla *scintilla = new QsciScintilla;
QsciLexerHTML *lexer = new QsciLexerHTML;
scintilla->setLexer(lexer);
scintilla->show();
return app.exec();
}

Compilez ce bout de code (n’oubliez pas de rajouter LIBS += -lqscintilla2 à votre .pro) et admirez le résutat^^
Pour colorier le texte QScintilla utilise des lexers, ici nous avons utilisé un QsciLexerHTML qui colore le Cobol HTML et avec le PHP, XML, ASP, Python, VBScript, Javascript et SGML.
QScintilla rassemble ainsi 29 QsciLexer pout tous les langages courants : C++, Java, C#, Perl, SQL, Fortran, D etc…

Mais le fait de seulement colorier du code n’est pas intéressant ni vraiment utile.
Heureusement pour nous QScintilla possède tout un tas de propriétés et de fonctions qui vont nous aider à mettre un place un éditeur de texte complet :

// Définit une couleur spécifique pour un élément :
// ici red pour les tags PHPStart ('; ?>)
lexer->setColor(Qt::red, QsciLexerHTML::PHPStart);   

// Active la marge à gauche pour la numérotation des lignes
// et lui assigne une largeur de 4
scintilla->setMarginLineNumbers (1, true);
scintilla->setMarginWidth(1, "----");

// ‘Repliage’ du code (parentheses, crochets,
, etc…) scintilla ->setFolding(QsciScintilla::BoxedFoldStyle); // Mise en surbrillance des parenthèses, crochets correspondants scintilla->setBraceMatching(QsciScintilla::SloppyBraceMatch); // Active l'auto-indentation scintilla->setAutoIndent(true); // Charge le contenu du fichier (ligne par ligne) comme source d'auto-complétion // Et assigne cette source à l'éditeur qui déclenchera l'auto-complétion dès que 3 caractères seront tapés QsciAPIs *api = new QSciAPIs(lexer); api->load("fichier.txt"); scintilla->setAutoCompletionSource(QsciScintilla::AcsAPIs); scintilla->setAutoCompletionThreshold(3); Etc... etc...

Pour la liste complète des méthodes et des classes de QScintilla direction la Doc.

Sachez également qu’une liste de fonctions propres aux éditeurs de texte existe. Vous pouvez donc aussi bien utiliser undo() / redo(), que indent()/ unindent(), cut() / copy() / paste(), insert() / insertAt() etc…

Bon codage !

Catégorie: Qt | Laisser un commentaire (0)

Configuration et Utilisation de Vim 4/5

Posté par seiyar81 le 17 novembre 2009 | Laisser un commentaire (0)
news-vim

Avant-dernière partie du tutoriel consacré à l’éditeur Vim. Aujourd’hui c’est à l’encodage que nous nous intéresserons. Source de bien des soucis, lequel choisir, et comment, entre l’UTF-8 et les différentes normes ISO ?

Tout d’abord il faut régler 2 paramètres impotants :

  • fileencoding : encodage des caractères à l’enregistrement du fichier
  • fileencodings : liste des encodages à tester pour initialiser fileencoding

L’idéal est de fixer le second paramètre dans votre fichier de configuration (‘/etc/vim/vimrc’ ou bien ‘/home/username/.vimrc’ comme vu dans la seconde partie) :

set fileencodings=ucs-bom,utf-8,latin1

Ainsi le fichier commence par une marque d’encodage BOM, ensuite si un caractère non valide UTF-8 est trouvé dans le document, Vim passe alors en latin1 (ISO8859-1).

Un petit exemple de configuration pour l’encodage :

if has("multi_byte")
set encoding=utf-8
setglobal fileencoding=utf-8
set bomb
set termencoding=iso-8859-15
set fileencodings=utf-8,ucs-bom,iso-8859-15,iso-8859-3
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif

Notez que set bomb force le BOM (nobomb pour l’enlever).
Ainsi à moins qu’un caractère défectueux ne soit trouvé, l’encodage est fixé en UTF-8.

Il est également possible de forcer l’encodage à l’ouverture du fichier :

:e ++enc=utf-8 file // Force l'encodage en UTF-8 même en cas de mauvais caractère

vim -c ':e ++enc=utf-8 file' // Pareil mais de la ligne de commande

Libre à vous ensuite de régler vos paramètres à l’encodage qui vous convient le mieux !

Prochain et dernier chapitre : l’utilisation de Vim pour développer. Auto-complétion, coloration du code et différents réglages.

Catégorie: Linux | Laisser un commentaire (0)

Configuration et Utilisation de Vim 3/5

Posté par seiyar81 le 15 novembre 2009 | Laisser un commentaire (0)
news-vim

Aujourd’hui nous nous attaquons à la partie sur la recherche avec Vim. Il est en effet possible d’effectuer une recherche dans le document en cours d’édition vers le bas du document, vers le haut, de remplacer du texte sur une ou plusieurs lignes etc…

Tout d’abord comment effectuer une recherche de texte :

/yriase   // Recherche toutes les occurrences d'yriase dans le document vers le bas
?yriase  // Pareil mais vers le haut du document
// Appuyez ensuite sur la touche n pour aller d'une occurrence à l'autre.

%  // Vous permet de trouver les correspondances des caractères suivants : ), ] ou }
    // Très utile quand on programme

Il est également possible d’effectuer un « rechercher/remplacer » :

:s/ancien/nouveau             // Remplace la première occurrence d'ancien par nouveau dans la ligne
:s/ancien/nouveau/g          // Pareil mais sur toute la ligne
:%s/ancien/nouveau/g       // Pareil mais dans tout le fichier
:10,15s/ancien/nouveau/g  // Pareil mais entre les lignes 10 et 15
:%s/ancien/nouveau/gc     // Demande confirmation pour le remplacement

Enfin quelques petits réglages pour la casse :

:set hl              // Active la mise en surbrillance des résultats
:set ic              // Active la recherche incrémentielle

:set ic              // Ignore la casse
:set noic           // N'ignore pas la casse

Voilà la prochaine fois ce sera la partie sur l’encodage !

Catégorie: Linux | Laisser un commentaire (0)

Nokia lance les certifications pour Qt

Posté par seiyar81 le 27 octobre 2009 | Laisser un commentaire (0)
Qt

Qt est un framework multi-plateforme (Windows, Linux, Mac OS) composés de plusieurs bibliothèques (ou modules) qui permettent aussi bien la programmation de GUI que la programmation réseau, l’accès aux bases de données, la manipulation de XML, la 3D avec OpenGL etc… tout cela en C++.
Ses capacités sont énormes, c’est simple : on peut tout faitre avec Qt !

Crée par la société Trolltech, rachetée récemment par Nokia, Qt est disponible sous licence LPGL, ce qui permet la création d’application propriétaires, et également sous une licence commerciale.

Utilisé par de milliers de développeurs dans le monde, de nombreux logiciels plus ou moins ‘connus’ ont été crées avec : Google Earth, KDE, Opera, Skype etc…

Développer avec Qt requiert une bonne connaissance des modules de base du framework, de son architecture, des différentes classes (histoire de ne pas être dans la doc, très bien pensée soit dit en passant, toutes les 5min).

Nokia a pensé aux développeurs avides de certifications puisqu’est disponible depuis le 1er Octobre, une certification Qt !
Comme beaucoup de certifications, on peut la passer dans les centres Person Vue, ceci pour une somme de 149€ (75€ si vous la repassez après l’avoir ratée).

Pour l’instant seule la certification Qt Essentials est disponible. Elle porte principalement sur la connaissance des modules QtCore et QtGui, consiste en un QCM de 50 questions, et est réalisable en 1h.
D’autres certifications viendront et porteront sur les autre modules de Qt.

Pour plus d’informations :

http://qt.nokia.com/developer/learning/certification

http://qt.nokia.com/developer/learning/qt-essentials-curriculum-block

http://qt.developpez.com/certification/presentation

Plus de détails quand je l’aurais passée :p

Catégorie: Qt | Laisser un commentaire (0)