IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Qt Discussion :

Curseurs de défilement : conseil sur du code


Sujet :

Qt

  1. #1
    Invité
    Invité(e)
    Par défaut Curseurs de défilement : conseil sur du code
    Vos idées d'amélioration et/ou d'utilisation

    • Possibilité de sélection d'une valeur précise
    • Possibilité de griser des curseurs
    • D'autres suggestions ?


    Hello developpers ! Hello Qt developpers !

    J'ai beaucoup appris sur ce site, et ce, sans jamais avoir eu à poster ne serait-ce qu'un petit message sur les forums de ce site. Merci donc à toutes ces personnes qui partagent leur connaissance avec nous autres apprenants, et cela à travers des cours intéressants et de très bonne qualité. Afin de briser la glace (comme on dit ) je poste mon tout premier message sur ce site. Vous pourriez ainsi partager avec moi votre opinion sur un sujet que je développe dans la suite. De quoi s'agit-il ?

    Je suis étudiant en informatique, inscrit en première année d'école d'ingénieur. J'ai donc officiellement un niveau bac+3, même si j'étais en fac l'année dernière et que j'ai validée ma licence. Cette année en est par conséquent ma quatrième en post-bac. J'ai réalisé cette année par le biais de la Junior Entreprise de mon école une interface Qt pour une petite entreprise. J'ai beaucoup appris durant la phase de développement car je ne connaissais pas auparavant toutes les fonctionnalités Qt nécessaires à la réalisation des différentes interfaces que je devais réaliser. Et maintenant, je sais créer une interface multi-curseur en Qt et je voudrais avoir des idées d'amélioration d'une telle interface. Plus précisément, je veux réaliser un gestionnaire d'interfaces multi-curseur qui soit général, gratuit, et par conséquent utilisable par tout le monde. Le code sera donc mis sur github une fois que j'aurais bien avancé dans le projet.

    Pour l'instant, voici quelques captures présentant partiellement ce que j'arrive déjà à faire.

    Interface actuelle avec les dates

    Pièce jointe 171863

    On peut donc, grâce à cette multislider, programmer un événement pour qu'il soit exécuté uniquement entre les temps t1 et t2. Et comme vous pouvez le voir, le temps t1 correspond à la date*: 28/08/08 à 05h22min14s. Un déplacement minimal du curseur fait augmenter ou diminuer le temps de une seconde.

    On peut aussi associer une couleur significative à un curseur ; ici l'exemple a été pris à la volée.

    Interface actuelle avec les entiers

    Pièce jointe 171673

    La valeur minimale du curseur est 50 et sa valeur maximale est 100. De plus, lorsqu'on clique sur un curseur, sa couleur change (le 2ème curseur à partir de la droite). Les deux curseurs de droite ont la même valeur.

    Pour tout résumer

    Le code que j'ai déjà écris n'est pas très propre, surtout qu'un article récemment paru sur ce site en parle. Je voudrais donc reprendre le code à partir de zéro, afin de produire quelque chose de plus potable. Toutefois, je voudrais complexifier un peu le projet afin de rendre l'interface un peu plus générale, facilement utilisable et ce, gratuitement. Je pourrais aussi intégrer le zoom, ou encore le déplacement simultanément des curseurs. Bref, vous avez compris, merci de me donner vos précieuses idées d'amélioration ou d'utilisation d'une multislider, qu'elles soient liées ou non à la représentation à l'écran des données.

    Sur ce bonne journée à vous et à vos claviers...
    Dernière modification par Invité ; 16/03/2015 à 20h26. Motif: Ajout d'idées d'amélioration

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 438
    Points
    2 438
    Par défaut
    Bonsoir et bienvenue sur le forum

    Citation Envoyé par misterFad Voir le message
    [Petite remarque] J'essaye de modifier l'avatar de mon compte mais en vain. Que dois-je faire ?
    Il faut dépasser un seuil de points pour débloquer cette fonctionnalité. Je ne sais plus exactement combien, il doit y avoir la réponse dans le sous forum du club.

    Ton interface a l'air très intéressante !
    J'ai quelques idées en vrac :
    - Ce type de widget peut être pénible sur du tactile, il faudra faire attention à la précision des curseurs.
    Il arrive souvent qu'on veuille sélectionner une valeurs précise, mais qu'on n'y arrive pas (typiquement, je veux choisir 50 mais je ne peux choisir que 49 ou 51).
    Une solution serait d'ajouter une line edit correspondant à chaque curseur afin de rentrer la valeur manuellement (mais ça risque d'être lourd).
    On pourrait aussi penser à « aimanter » les curseurs, pour qu'ils s'accrochent à des valeurs remarquables.

    - Quel curseur sera sélectionné si deux d'entre eux (ou plus) sont collés (comme sur la dernière image) ?
    Le plus proche du doigt / de la souris ? Un qui aurait une « priorité » plus importante ?

    - Tu pourrais aussi ajouter une fonctionnalité d'échelle logarithmique, ça peut être utile.

    - Éventuellement, on pourra utiliser d'autres types que les dates et les nombres (couleurs, lettres).

    - On peut peut-être « griser » (disable) un ou plusieurs curseurs, pour qu'on ne puisse plus les déplacer ? Si oui, est-ce qu'un curseur, disons celui à sa gauche peut « passer par dessus » et aller à droite, ou bien il sera bloqué à sa gauche ?


    Ce sont des questions pas si évidentes qu'il n'y paraît. Il est probable qu'il y ait plusieurs comportements à implémenter et à proposer aux développeurs.

    En tous les cas ça a l'air prometteur

    PS: la première pièce jointe est incorrecte.

    Cordialement.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci d'avoir pris le temps de rédiger un message aussi long.

    En ce qui concerne l'avatar de mon compte, tu as bien raison car j'ai reçu aujourd'hui un message (d'un administrateur de ce site que j'avais contacté) confirmant tes propos. Revenons maintenant à l'interface multicurseur. Je trouve tes suggestions tellement intéressantes que pour ne pas avoir à les rechercher plus tard, je les note ici, au tout début de mon premier post. Mais il y a qu'en même des choses que je ne comprends pas et ce serait génial si tu pouvais m'éclairer.

    On pourrait aussi penser à « aimanter » les curseurs, pour qu'ils s'accrochent à des valeurs remarquables.
    Je ne suis pas sûr de comprendre. Pourrais-tu m'en dire plus ?

    Tu pourrais aussi ajouter une fonctionnalité d'échelle logarithmique, ça peut être utile.
    Parlerais-tu du zoom ?

    Quel curseur sera sélectionné si deux d'entre eux (ou plus) sont collés (comme sur la dernière image) ?
    Le plus proche du doigt / de la souris ? Un qui aurait une « priorité » plus importante ?
    Je dirais que la précision dans ce cas précis dépend de ce qui est fourni par Qt (mouseClicked par exemple). Mais dans tous les cas, c'est uniquement le curseur qui reçoit le mouseClickedEvent qui sera bougé. En conviens-tu ?

    Éventuellement, on pourra utiliser d'autres types que les dates et les nombres (couleurs, lettres).
    Wow ! Les couleurs ? Les lettres ? Voudrais-tu bien m'éclairer ? (Des exemples de cas d'utilisation par exemple)

    On peut peut-être « griser » (disable) un ou plusieurs curseurs, pour qu'on ne puisse plus les déplacer ? Si oui, est-ce qu'un curseur, disons celui à sa gauche peut « passer par dessus » et aller à droite, ou bien il sera bloqué à sa gauche ?
    Ta proposition sur le grisage des curseurs me paraît très intéressante. Mais en ce qui concerne le déplacement des curseurs, je dirais qu'il y a trois cas. Soit j un curseur :
    • Si j a un voisin à gauche (un autre curseur, disons i), sa valeur minimale n'est rien d'autre que la valeur de i.
    • Si j a un voisin à droite (un autre curseur, disons k), sa valeur maximale n'est rien d'autre que la valeur de k.
    • Si j n'a pas de voisin de gauche, sa valeur minimale est égale à celle de la slider.
    • Si j n'a pas de voisin de droite, sa valeur maximale est égale à celle de la slider.

    N'hésites surtout pas si t'as d'autres remarques. Quant à la pièce jointe qui était invalide, je l'ai corrigé : tu devrais normalement pouvoir la télécharger à partir de mon dernier message. D'un autre côté, j'avais commencé le cahier des charges il y a quelques jours. Je rajouterais et détaillerais tout ce que tu viens d'énoncer puis le publierais ici même. Ainsi, une fois que je serais bien fixé, le développement pourrais aller plus rapidement et surtout « proprement ». En tout cas c'est ce que j'ai appris : toujours élaborer un plan de travail avant de se lancer dans la réalisation d'un projet quelque peu conséquent.

    Merci et au plaisir de te relire.
    Dernière modification par Invité ; 16/03/2015 à 20h10.

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 438
    Points
    2 438
    Par défaut
    Citation Envoyé par misterFad Voir le message
    Citation Envoyé par Daïmanu Voir le message
    On pourrait aussi penser à « aimanter » les curseurs, pour qu'ils s'accrochent à des valeurs remarquables.
    Je ne suis pas sûr de comprendre. Pourrais-tu m'en dire plus ?
    L'idée serait que le curseur, lorsqu'il arrive dans la zone des 50 par exemple, serait attiré par le 50. Si on bouge légèrement la souris, le curseur ne bougera pas, il restera collé au 50. Il faudrait alors insister un peu plus sur la souris pour décoller le curseur.

    Citation Envoyé par misterFad Voir le message
    Citation Envoyé par Daïmanu Voir le message
    Tu pourrais aussi ajouter une fonctionnalité d'échelle logarithmique, ça peut être utile.
    Parlerais-tu du zoom ?
    Non, je parle plutôt d'une échelle dont un intervalle fixe ne correspond plus à une addition, mais à une multiplication. Par exemple 1 - 10 - 100 - 1000. Cf Wikipedia.

    Citation Envoyé par misterFad Voir le message
    Je dirais que la précision dans ce cas précis dépend de ce qui est fourni par Qt (mouseClicked par exemple). Mais dans tous les cas, c'est uniquement le curseur qui reçoit le mouseClickedEvent qui sera bougé. En conviens-tu ?
    Il s'agit plutôt de mouseMoveEvent, mais en effet la précision dépend entre autres de Qt.

    Citation Envoyé par misterFad Voir le message
    Wow ! Les couleurs ? Les lettres ? Voudrais-tu bien m'éclairer ? (Des exemples de cas d'utilisation par exemple)
    Eh bien pour les lettres on peut imaginer une ligne allant de A à Z. Pour les couleurs (c'est un peu fantaisiste), on peut imaginer une ligne rouge, puis orange, jaune, vert, cyan, bleu, et violet (comme les arc en ciels en fait). Ça ne remplace pas un vrai color picker (en deux dimensions), mais ça peut servir qui sait ?

    Citation Envoyé par misterFad Voir le message
    toujours élaborer un plan de travail avant de se lancer dans la réalisation d'un projet quelque peu conséquent.
    C'est en effet la meilleure chose à faire (et trop souvent une étape sautée ).

    Cordialement.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Hello !

    J'ai essayé de faire un "pseudo" cahier des charges, histoire d'avoir une version écrite et sauvegardée de toutes les idées qui seront implémentées dans un futur proche. Merci de le retrouver joint (au format pdf) à ce post.

    Pièce jointe 172274

    PS: J'aurais souhaité pouvoir intégrer cette pièce jointe directement à mon tout premier post, mais cela n'est visiblement pas possible.

Discussions similaires

  1. Conseil sur code
    Par Anaxagore dans le forum VB.NET
    Réponses: 12
    Dernier message: 26/03/2009, 12h53
  2. Besoin de conseil sur la portabilite de code et IDE
    Par _solo dans le forum Débuter
    Réponses: 12
    Dernier message: 23/09/2008, 16h32
  3. Conseil sur l'organisation du code
    Par Fly3R dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/11/2007, 16h39
  4. [VBA]Conseil sur code VBA
    Par mat67000 dans le forum VBA Access
    Réponses: 15
    Dernier message: 22/03/2007, 11h23
  5. Je débute -> Conseils sur mon prog (code, lisibilité etc.)
    Par asxasx dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 22/03/2007, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo