Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Lancement de la deuxième partie de l'exercice Qt

Pour aller plus loin dans votre color picker

Le 2010-08-20 19:44:14, par johnlamericain, Rédacteur
Mise à jour : 09/09/2010

Seconde partie : accompagner le widget d'un sélecteur de couleur et amélioration de celui-ci

L'objectif est de continuer le widget en l'améliorant et ajoutant d'autres fonctionnalités. Pour ceux qui n'auraient pas un widget fonctionnel, voici une archive contenant la classe du widget du vainqueur de la première partie à savoir gbdivers améliorée par mes soins pour prendre en compte les malus qui lui ont été mis à la correction !

L'archive pour partie 2 !

La première amélioration requise pour la partie deux est la création d'un slider permettant la création de la couleur principale (teinte ou hue en anglais). L'image ci-jointe vous montre de quoi je parle :



Ce slider peut faire partie du widget ou être un widget indépendant. Je vous conseille de regarder la classe QSlider et les paramètres pour la personnalisée.

De plus un ensemble de champ QLineEdit respectant un certain format QIntValidator devra permettre d'afficher et de modifier la valeur de la teinte, saturation ou valeur. En cas de modification, le changement se répercutera sur le widget par le déplacement du point de sélection. Il existe donc une connexion dans les deux sens entre ces différents éléments.

Par la suite, il faudra modifier le widget existant pour permettre également d'afficher les dégradés de la saturation et de la valeur (et non plus la teinte, hue en anglais).

Exemples :





C'est tout pour les étapes imposées dans cette seconde partie qui durera deux semaines.

Pour les personnes qui ont de l'avance, vous pouvez réfléchir à n'afficher que les couleurs disponibles pour le web et la représentation des dégradés dans les autres espaces colorimétriques.





Si vous avez besoin d'explications supplémentaires, n'hésitez pas à poser des questions à la suite de ce message. De plus la correction et le code source de l'ensemble des candidats pour la première partie est disponible dans ce sujet.

Bon courage !

Envoyé par Message original
Bonjour à tous,

Nous savons que vous attendez avec impatience le prochain défi Qt, cependant un défi de qualité prends du temps à organiser et mettre en place. Pour palier à votre envie de développer et de vous faire les dents sur un nouveau projet, nous vous proposons un nouveau concept : les exercices Qt

Le principe

Des petits sujets réguliers pour lesquels vous pouvez apporter une solution en détaillant quelques étapes clés imposés. La durée de l'exercice dépendra de la difficulté de l'énoncé. Il est possible qu'un sujet conséquent en travail soit proposé et ainsi découpé en plusieurs parties représentant une suite d'exercices sur le même thème.

Tout le monde peut ainsi proposer une solution pour répondre à l'exercice posé. Dans le cas d'un exercice en plusieurs parties, la meilleure solution pourra être utilisée par les autres participants pour la suite de l'exercice.

Il est impossible pour l'équipe de réunir un jury et réaliser un barème aussi poussé que celui des défis Qt. La meilleure solution sera ainsi désignée d'un point de vue plus subjectif que pour les défis Qt par les responsables de la rubrique Qt, à savoir dourouc05 et moi-même et éventuellement d'autres membres de l'équipe Qt en fonction des disponibilités de chacun.

Les exercices seront ainsi proposés le vendredi (vous permettant d'y travailler dès le week end après avoir découvert le nouveau sujet). La fin du dépôt des propositions aura lieu le vendredi soir à 23h59, un certain nombre de semaines (dépendant de la difficulté de celui-ci) après la présentation du sujet et le vainqueur sera désigné dans la semaine suivante avant la proposition du nouvel exercice.

Nous essayerons de faire attention à ce qu'il n'y ait pas de copie entre les codes des participants en appliquant la règle que le premier code publié sur le forum "appartient" au membre l'ayant posté. Il existe bien sur des réponses à ces solutions sur internet, mais quel est l'intérêt pour vous de les utiliser ?

Le premier sujet !

Le thème

Ce premier exercice fait parti d'un thème qui est la réalisation d'un color picker. Ci-dessous, quelques color pickers connus mais libre à vous de faire travailler votre imagination pour nous donner une meilleure solution au final :



Ce thème est découpé en trois parties qui toutes durent deux semaines. Un nouvel énoncé d'exercice sera donc publié toutes les trois semaines (en comptant la semaine de correction).

Première partie : widget personnalisé pour affiche et sélectionner la nuance de gris d'une couleur

Création d'un widget permettant de sélectionner la nuance de gris à partir d'une couleur. Seul le widget affichant le gradient de la nuance de gris sur une couleur sera évalué mais votre fenêtre peut afficher la couleur en cours et les valeurs de celle-ci pour démontrer le bon fonctionnement de celui-ci.

Le widget peut être carré, rectangulaire, sphérique, en cercle, libre à votre imagination.

Les étapes d'explications imposées :

  1. Mise en place de la structure du widget (héritage, composition...) ;
  2. Réalisation du gradient ;
  3. Séléction et récupération de la couleur à partir du gradient.


Vous avez donc jusqu'au vendredi 3 septembre 23h59 pour nous fournir une solution. Le dépôt des solutions ce fait sur le forum à la suite de ce message.

J'espère que l'idée vous plait, n'hésitez pas également à nous faire part de votre participation à la suite de ce message, de présenter votre solution en avant première et je finirai par dire : à vos claviers !
  Discussion forum
94 commentaires
  • kaymak
    Membre émérite
    hello,
    les liens images sont brisés : /

    Autrement pensez vous que ces défis soit accessible à des non initiés de qt ?

    a plus
  • GreatTux
    Membre actif
    L'utilisation de QML est-elle autorisée ?

    kaymak: je pense justement que c'est tout à fait adapté aux débutants pour découvrir Qt
  • dourouc05
    Responsable Qt & Livres
    Envoyé par kaymak
    les liens images sont brisés : /
    Je viens de les héberger sur la rubrique et non sur le forum, ça devrait aller mieux (même si je les voyais ).

    Envoyé par kaymak
    Autrement pensez vous que ces défis soit accessible à des non initiés de qt ?
    Parfaitement ! Justement, si on a divisé l'exercice en plusieurs parties, c'est pour ne pas décourager les débutants de se lancer dans l'aventure ! Si tu as besoin d'aide, n'hésite pas à poster sur les forums (Débuter).

    Envoyé par GreatTux
    L'utilisation de QML est-elle autorisée ?
    Ce n'est pas du tout interdit, c'est l'une des nombreuses possibilités ! Laisse aller ton imagination, laisse-la te porter dans l'univers de Qt et ses myriades de possiblités, tout est accepté .
  • gbdivers
    Inactif
    Fini !

  • kaymak
    Membre émérite
    mouarf, j'en suis encore à chercher comment atteindre ma frame dans mon ui
  • johnlamericain
    Rédacteur
    Envoyé par gbdivers
    Fini !

    C'est pas tout d'avoir un screenshot (qui a dit photo montage ?) il faut aussi avoir un code propre et de belles explications pour gagner

    Les étapes d'explications imposées :

    1. Mise en place de la structure du widget (héritage, composition...) ;
    2. Réalisation du gradient ;
    3. Sélection et récupération de la couleur à partir du gradient.
    Est ce que la sélection de couleurs fonctionne ? N'as tu pas une idée plus original que le carré de photoshop Je dis ça c'est pour pas que tu t'ennuie pendant les 2 prochaines semaines !
  • Très bonne initiative, et moi qui m'ennuyait sans défi ! Mais j'aurais dis Atelier Qt que Exercices Qt, enfin bref...

    Pour les prochains thèmes d'exercices nous pouvons vous envoyez des sujets complets ?

    Sur ce moi je commence.
  • gbdivers
    Inactif
    La version QML... qui ne fonctionne pas



    La gestion de la souris fonctionne mais aucune idée de comment récupérer la couleur sélectionnée... A suivre
  • yan
    Rédacteur
    Tu fait comment l'image de dégradé en fond? A la main ou avec une des classe QGradient?
    A part le faire à la main, je ne voie pas trop comment.
  • gbdivers
    Inactif
    J'utilise les gradients (obligatoire pour changer la couleur principale dynamiquement)

    J'ai posé la question du color picking sur le QDN, ce n'est effectivement pas possible de faire cela avec le QML. Il faut ruser...