Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Rédacteur

    [Exercice Qt] Color picker, deuxième partie lancée !
    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 !

    Citation 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 !
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  2. #2
    Membre chevronné
    hello,
    les liens images sont brisés : /

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

    a plus

  3. #3
    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
    Nokia certified Qt developer
    Mon profil Linkedin

  4. #4
    Responsable Qt & Livres

    Citation Envoyé par kaymak Voir le message
    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 ).

    Citation Envoyé par kaymak Voir le message
    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).

    Citation Envoyé par GreatTux Voir le message
    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é .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Inactif  
    Fini !


  6. #6
    Membre chevronné
    mouarf, j'en suis encore à chercher comment atteindre ma frame dans mon ui

  7. #7
    Rédacteur

    Citation Envoyé par gbdivers Voir le message
    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 !
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  8. #8
    Invité
    Invité(e)
    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.

  9. #9
    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

  10. #10
    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.

  11. #11
    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...

  12. #12
    Rédacteur

    Citation Envoyé par gbdivers Voir le message
    J'utilise les gradients (obligatoire pour changer la couleur principale dynamiquement)
    tu utilise les gradients j'avoue je vois absolument pas comment
    moi je l'ai fait à la main

    Citation Envoyé par gbdivers Voir le message
    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...
    donc je connais la couleur en fonction du point x-y

  13. #13
    Inactif  
    Que veux tu dire par "à la main" ? Genre photoshop et export d'une image ?

  14. #14
    Rédacteur

    Citation Envoyé par gbdivers Voir le message
    Que veux tu dire par "à la main" ? Genre photoshop et export d'une image ?
    j'ai créé l'image de gradient du fond en code grâce à QColor et à l'espace HSV.
    J'obtiens la même image que toi (à l'oeil nue en tous cas).

    Pour ton problème avec qml, ce qui m'étonne c'est que ce n'est pas le même problème que ta version sans qml. Car il faut bien à un moment ou un autre retrouver la couleur en fonction de la position x-y.

  15. #15
    Inactif  
    j'ai créé l'image de gradient du fond en code grâce à QColor et à l'espace HSV.
    J'obtiens la même image que toi (à l'oeil nue en tous cas).
    Ok, je comprend l'idée.

    Pour ton problème avec qml, ce qui m'étonne c'est que ce n'est pas le même problème que ta version sans qml. Car il faut bien à un moment ou un autre retrouver la couleur en fonction de la position x-y.
    Si j'en dis trop, l'exo perd de son intérêt, non ?

  16. #16
    Rédacteur

    Citation Envoyé par gbdivers Voir le message
    Si j'en dis trop, l'exo perd de son intérêt, non ?
    ^^ pas de problème. J'attendrais la fin. Mais ça m'intrigue.

  17. #17
    Inactif  
    Du coup, je comprend mieux les questions concernant l'encodage des couleurs (HSV, CMYK, YMCA...)

  18. #18
    Invité
    Invité(e)
    Moi j'ai fait un petit truc mais ça ne ressemble pas à ce que vous avez fait...



    En fait je joues avec le format HSV, et j'ajuste la valeur (entre 0 et 255) d'une couleur donnée par un QColorDialog. Bon j'admet... je ne comprends rien à l'énoncé.

  19. #19
    Inactif  
    Le but n'est pas de faire exactement la même chose, juste de pouvoir modifier les nuances de gris d'une couleur.

    Par contre, ça serait bien peut être de pouvoir aussi choisir les nuances plus claires (du vert vers le blanc)

  20. #20
    Rédacteur

    Citation Envoyé par gbdivers Voir le message
    Du coup, je comprend mieux les questions concernant l'encodage des couleurs (HSV, CMYK, YMCA...)
    ? quelles questions?

###raw>template_hook.ano_emploi###