Je dois définir un élément GUI qui contient un intervalle de temps avec minutes, heures, jours, semaines et mois. Quelle est la meilleure pratique dans ce cas?
J'ai envisagé les possibilités suivantes:
Y a-t-il d'autres bons moyens?
Mon idée initiale est d'utiliser un curseur où vous pouvez choisir des horodatages adaptés à l'utilisateur. Plus vous remontez dans le temps, plus vous avez de pas de temps approximatifs dans cette échelle logarithmique. Ce n'est peut-être pas approprié partout, mais c'est rapide et intuitif:
télécharger la source bmml - Wireframes créés avec Balsamiq Mockups
J'aime particulièrement la façon dont Facebook gère les dates. Il vous suffit de choisir une date en cliquant sur le calendrier puis de spécifier l'heure. Lors de la saisie de l'heure, ils vous suggèrent quelques arrondis.
Cela me semble que vous essayez de concevoir le modèle d'interaction souvent utilisé dans les logiciels de planification, d'agenda ou de calendrier.
Jetez un œil à la façon dont cela se fait généralement sur le système d'exploitation pour lequel vous concevez. Sous Windows par exemple, vous pouvez supposer que la plupart des utilisateurs professionnels travaillent avec Outlook et ont créé un rendez-vous ou un élément d'agenda au moins une fois.
Ci-dessous deux exemples de Google Agenda et Outlook. Les deux s'appuient sur un sélecteur de dates et une liste déroulante pour choisir le début et la date/heure de début. Vous pouvez étendre la zone de texte de l'heure aux minutes ou secondes de l'hôte si nécessaire. Les cases à cocher fournissent des raccourcis supplémentaires pour remplir l'intervalle de temps.
** Modifier basé sur le commentaire de Frugi **
Pour une notification après un délai donné, vous pouvez également envisager quelque chose dans la ligne de la solution d'Evernote. Il donne 2 raccourcis qui seront souvent utilisés: 'Demain' 'Dans une semaine mais donne également la possibilité de renseigner une heure et éventuellement une date. Vous pouvez cependant supprimer la date et la remplacer par un certain nombre de mois.
Bien que la solution soit plus appropriée pour une page Web/interface Web ou une application mobile, qu'une application de bureau à mon avis.
** Edit basé sur la réponse de Benni **
Juste une dernière idée qui me vient à l'esprit. Si l'idée d'un curseur convient à votre application mais que vous avez besoin de plus de contrôle sur la limite de temps exacte, vous pouvez penser à une combinaison.
Utilisez le curseur pour un ajustement rapide, mais si vous devez saisir une valeur précise, vous pouvez créer une fenêtre contextuelle qui s'ouvre en double-cliquant/survolez/cliquez/rmb sur le pouce du curseur. Dans cette fenêtre contextuelle, vous pouvez mettre des contrôles de précision comme des filateurs pour affiner votre heure/date.
J'ai eu un problème similaire avec un de mes projets. Voici ce que j'ai fait. Code source
Le positionnement est peut-être désactivé.
Pour sélectionner la durée, utilisez quelque chose comme ceci:
Je suppose que cela dépend fortement du type de cas d'utilisation que vous souhaitez implémenter.
En fonction de cela, il peut y avoir plusieurs réponses valides, et aucune réponse unique ne conviendra à tous les cas d'utilisation de la même manière, donc je suppose qu'il n'y a pas de réponse canonique.
Au départ, je pensais aussi au slider, mais ensuite je me suis dit: De quelle durée parlons-nous?
Selon les réponses à ces questions, j'irais dans un sens ou dans l'autre.
Pour donner un exemple:
Juste pour vous donner une idée.
Fondamentalement, ma réponse se résume à tilisez le bon outil pour le bon travail.