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

Langage C++ Discussion :

Vidéothèque, mur de jaquettes


Sujet :

Langage C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Points : 55
    Points
    55
    Par défaut Vidéothèque, mur de jaquettes
    Bonjour,

    Je suis actuellement en train de réaliser un logiciel de vidéothèque et je suis notamment en train de penser à réaliser un mur de jaquettes. L'idéal serait qu'elles soit cliquables pour accéder aux renseignement des films. J'utilise Qt pour l'interface graphique. Mon idée serait de créer un mur de boutons en les disposant avec un Layout (certainement grille), puis de coller les jaquettes sur les boutons. A votre avis est-ce que c'est propre comme façon de faire ou est-ce qu'il y a un moyen de gérer ça bien comme il faut?

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Plutôt que des boutons dans un Layout, n'y a-t-il pas de contrôle ToolBar ou ListView (disposant d'un mode Grandes Icônes ou Miniatures) sous QT?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par Avatar36 Voir le message
    A votre avis est-ce que c'est propre comme façon de faire ou est-ce qu'il y a un moyen de gérer ça bien comme il faut?
    Il y à peut être mieux déjà existant, sinon il est toujours possible de créer un Widget

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Points : 55
    Points
    55
    Par défaut
    Oui mais attention, les jaquettes doivent pouvoir être cliquables pour accéder directement à la fiche du film, d'où mon idée des boutons. On peut faire ça avec un listview? Toolbar il me semble que c'est pour faire une barre d'outil, je ne vois pas bien ton idée avec cet objet.

    Cordialement

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    J'ignore ce que peuvent faire les ListViews de QT, mais sous Windows une ListView ça donne ce qu'affiche l'Explorateur Windows. Dans tous les modes d'affichage que tu veux (liste, icônes, miniatures...)

    Donc oui, c'est cliquable, ou au moins double-cliquable.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Points : 55
    Points
    55
    Par défaut
    Ok à mon avis c'est pas exactement ce que je voulais faire mais je testerai. Dans le pire des cas mon idée doit être réalisable je pense. J'essaierai les deux.

    @+

  7. #7
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Pour faire ce genre de trucs, je te conseille plutôt de regarder du côté de QML plutôt que QtWidgets. C’est Qt aussi, mais c’est plus moderne et probablement plus adapté à ce que tu veux faire (du moins, tout dépend des autres fonctions du logiciel. En tout cas, pour ce point précis, QML me semble meilleur).

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Pour faire ce genre de trucs, je te conseille plutôt de regarder du côté de QML plutôt que QtWidgets. C’est Qt aussi, mais c’est plus moderne et probablement plus adapté à ce que tu veux faire (du moins, tout dépend des autres fonctions du logiciel. En tout cas, pour ce point précis, QML me semble meilleur).
    Le QML c'est du Javascript. Donc en gros C++ pour la base, et Javascript pour l'UI et les bindings (et peut-être plus)
    Mais il est vrai que depuis au moins QT 4.6/ 5.0, toutes les nouvelles fonctionnalités "trop cool" c'est via QML

    Et le côté moderne, je ne suis pas "fan": connaitre 2 langages C++ et Javascript pour faire une grille qu'on peut coder en OpenGL pour le "fun"
    Cela se rapproche de la programmation internet PHP/ Javascript/ CSS/ HTML/ AS + les "bases" (Wordpress, Drupal, ...) + les bibliothèques annexes

  9. #9
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par foetus Voir le message
    Et le côté moderne, je ne suis pas "fan": connaitre 2 langages C++ et Javascript pour faire une grille qu'on peut coder en OpenGL pour le "fun"
    Cela se rapproche de la programmation internet PHP/ Javascript/ CSS/ JTML/ AS + les "bases" (Wordpress, Drupal, ...) + les bibliothèques annexes
    Je partage ton avi. Que les styles utilisent du CSS (ou un dérivé), c'est une bonne chose, ça peut être bien pratique. (Ya moyen en plus de vérifier la syntaxe à la compilation pour les styles connus à la compilation avec des templates variadiques).

    Que l'interface soit faite en HTML (ou dérivé), pourquoi pas, tant que c'est compilé pour récupérer un maximum d'erreurs (par exemple ajouter une fenêtre dans un bouton doit lancer une erreur de compilation, et pas une exception à l'exécution si c'est impossible).

    Mais le Javascript pour la logique... Je vois pas l'intérêt, on perd tous les avantages du C++ : typage strict, énormément d'erreurs détectés à la compilation, vitesse d'exécution, ...

  10. #10
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Mais le Javascript pour la logique... Je vois pas l'intérêt, on perd tous les avantages du C++ : typage strict, énormément d'erreurs détectés à la compilation, vitesse d'exécution, ...
    Attention à ne pas faire d’impair. Javascript n’est pas là pour la « logique », mais pour la « logique de présentation ». En gros, pour masquer / activer certains éléments en fonction du contexte, gérer quelques choses simples comme le positionnement d’éléments, adapter deux trois évènements (comme, au clic sur un bouton, appeler la méthode avec la valeur du champ d’à côté).

    Pour te donner une idée, sur un projet utilisant une interface QML, pour ~8000 lignes de qml (une vingtaine d’écrans différents, de complexité modérée), on a… 45 fonctions javascript, faisant en moyenne 3/4 lignes. Toute la logique est bien en C++.

    Et le côté moderne, je ne suis pas "fan": connaitre 2 langages C++ et Javascript pour faire une grille qu'on peut coder en OpenGL pour le "fun"
    En fait, entre les deux, ça ira beaucoup plus vite d’apprendre QML/javascript que d’apprendre OpenGL. Si tu connais déjà openGL et que tu découvres QML, c’est évidemment une autre histoire.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Je plussoye sur le QML

    C'est ultra simple (inutile d'apprendre vraiment le javascript, la syntaxe de base fera largement l'affaire au moins pour commencer), et ton projet s'apparente à de la pure GUI, pour laquelle le scripting est tout indiqué : une modif rapide, du tatonement, pas besoin d'attendre 10mn que ça recompile, suffit de relancer et voir le résultat

    Le C++ pour le "bas niveau" et les données oui, mais pour l'aspect pur affichage/GUI, le scripting est clairement préférable
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Attention à ne pas faire d’impair. Javascript n’est pas là pour la « logique », mais pour la « logique de présentation ». En gros, pour masquer / activer certains éléments en fonction du contexte, gérer quelques choses simples comme le positionnement d’éléments, adapter deux trois évènements (comme, au clic sur un bouton, appeler la méthode avec la valeur du champ d’à côté).
    Citation Envoyé par Bousk Voir le message
    Le C++ pour le "bas niveau" et les données oui, mais pour l'aspect pur affichage/GUI, le scripting est clairement préférable
    Chacun son point de vue, mais dire que c'est que du pure GUI, je ne pense pas

    Par exemple, on peut faire des threads, des écrans d'attente, faire des requêtes SQL.
    Et il y a un composant MVC il me semble.

    Les fonctionnalités en plus par rapport au Qt C++, sont des fonctionnalités quand même lourdes comme de l'OpenGL ou des effets vidéos

    Et enfin, le QML cible les mobiles, d'où son côté "touche à tout" et rapide.

    Chacun son point de vue, mais cela fait 2 langages à apprendre dont 1 langage ''bibliothèque-usage [quasi] unique' (par exemple il n'y a de var et on peut omettre le point virgule) avec les inconvénients d'un langage interprété "bridé" par un moteur, et ... fin du HS

  13. #13
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Attention à ne pas faire d’impair. Javascript n’est pas là pour la « logique », mais pour la « logique de présentation ». En gros, pour masquer / activer certains éléments en fonction du contexte, gérer quelques choses simples comme le positionnement d’éléments, adapter deux trois évènements (comme, au clic sur un bouton, appeler la méthode avec la valeur du champ d’à côté).

    Pour te donner une idée, sur un projet utilisant une interface QML, pour ~8000 lignes de qml (une vingtaine d’écrans différents, de complexité modérée), on a… 45 fonctions javascript, faisant en moyenne 3/4 lignes. Toute la logique est bien en C++.
    Dans ce cas pourquoi pas, je ne connais pas QML, et après avoir vu 2/3 exemples je pensais que le JS était beaucoup plus "présent".
    Exemple d'une calculette : http://qt-project.org/doc/qt-4.8/dem...alculator.html
    Avec la logique en JS : http://qt-project.org/doc/qt-4.8/dem...ulator-js.html

  14. #14
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Dans ce cas pourquoi pas, je ne connais pas QML, et après avoir vu 2/3 exemples je pensais que le JS était beaucoup plus "présent".
    Exemple d'une calculette : http://qt-project.org/doc/qt-4.8/dem...alculator.html
    Avec la logique en JS : http://qt-project.org/doc/qt-4.8/dem...ulator-js.html
    C’est le problème systématique avec les démos / exemples. On veut faire au plus simple pour que ça soit accessible ou que ça se concentre sur un unique aspect du problème, mais du coup, on fait quelque chose qui est très moyen d’un point de vue conception.

    Il faut bien voir que d’un point de vue MVC, JS + QML ne sont là que pour le V. Si tu te tiens à ça, alors javascript sera forcément limité. Si tu commences à mettre le contrôleur voire le modèle du côté javascript, c’est différent. Ça marchera, mais comme tu le dis, le rapport gain / perte va très très rapidement être défavorable avec le grossissement de la taille du projet.

    Citation Envoyé par foetus Voir le message
    Chacun son point de vue, mais dire que c'est que du pure GUI, je ne pense pas
    En fait, aujourd’hui, pour moi ce qui va motiver le choix vers l’un ou l’autre est plutôt de l’ordre du type d’interface qu’on veut. Soit
    - on veut une interface classique, avec des menus, des listes d’éléments, des widgets classiques, qui ressemblent bien à ce qu’on trouve dans n’importe quelle application classique et qui à le même look&feel que le reste de la plateforme, alors qtwidgets est plus adapté. QML n’est pas encore mature de ce point de vue (c’est en cours).
    - on veut une interface plus innovante, avec de jolis effets graphiques, des transitions, et quelque chose de plus épuré / simplifié, éventuellement adapté au tactile, alors là QML est nettement plus adapté.

    La « part » de l’interface graphique dans la quantité de code n’a du coup pas vraiment d’importance. De toute façon, passer de l’un à l’autre ne doit pas changer fondamentalement grand chose au reste du code, puisqu’on ne touche qu’à la partie vue.

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Points : 55
    Points
    55
    Par défaut
    Haha visiblement j'ai bien fait de poser la question ^^.
    Globalement je voulais faire quelque chose qui soit bien joli et de ce que j'ai pu lire de vos commentaire, cela correspondra plus à l'approche QML+JS. J'avais à peine commencé à apprendre le JS il y a longtemps. On dirait que je vais replonger dedans. Sinon, j'avais vu qu'on pouvait rajouter des style sheet au projets Qt. J'imagine que ce n'est pas suffisant pour faire quelque chose de très évolué? Mais si on regarde le logiciel MyCinema, il dispose d'un mur de jaquettes et pourtant le reste de l'interface est sobre (bon après c'est codé en java, c'est pas tout à fait la même chose). A votre avis est-ce que le programmeur a utilisé un script en JS?
    De ce que j'ai pu voir de QML sur la documentation Qt, cela semble très court! Du coup je n'ai que le JS à réapprendre c'est ça? Et le script JS se mettra dans un objet QML puis incorporé dans mon projet (corrigez moi si je me trompe). Finalement c'est un peu comme utiliser QtDesigner sauf que là c'est QtQuick (au niveau de l'utilisation et de l'incorporation au projet).

  16. #16
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Avatar36 Voir le message
    Haha visiblement j'ai bien fait de poser la question ^^.
    Globalement je voulais faire quelque chose qui soit bien joli et de ce que j'ai pu lire de vos commentaire, cela correspondra plus à l'approche QML+JS. J'avais à peine commencé à apprendre le JS il y a longtemps. On dirait que je vais replonger dedans. Sinon, j'avais vu qu'on pouvait rajouter des style sheet au projets Qt. J'imagine que ce n'est pas suffisant pour faire quelque chose de très évolué?
    Aucune idée pour ce qui est des feuilles de styles qtwidgets. Mon point de vue est qu’une appli qtwidgets doit être parfaitement intégrée à l’OS, et donc qu’elle ne doit surtout pas utiliser de styles pour cette raison. Pour ce qui est des styles qml, je n’ai pas encore eu le temps de creuser (ils étaient absent en qt quick 1.0).

    Mais si on regarde le logiciel MyCinema, il dispose d'un mur de jaquettes et pourtant le reste de l'interface est sobre (bon après c'est codé en java, c'est pas tout à fait la même chose). A votre avis est-ce que le programmeur a utilisé un script en JS?
    Je ne connais pas l’appli, mais je penche plutôt pour, comme l’a suggéré foetus, un contexte opengl et le tout programmé à la main.

    De ce que j'ai pu voir de QML sur la documentation Qt, cela semble très court! Du coup je n'ai que le JS à réapprendre c'est ça? Et le script JS se mettra dans un objet QML puis incorporé dans mon projet (corrigez moi si je me trompe). Finalement c'est un peu comme utiliser QtDesigner sauf que là c'est QtQuick (au niveau de l'utilisation et de l'incorporation au projet).
    Il te faut apprendre la syntaxe qml (très court, effectivement), un tout petit peu réviser javascript (pas besoin de grand chose), et ensuite, comprendre les concepts QMLs. Le plus dur est de se mettre à penser en « déclaratif », ce qui n’est pas toujours hyper intuitif.

Discussions similaires

  1. Création de pochettes et jaquettes pour CDs audio, DVDs, etc
    Par aliasjcdenton dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/03/2005, 17h34
  2. Ne pas traverser les murs
    Par Ghost Dog dans le forum OpenGL
    Réponses: 17
    Dernier message: 18/03/2005, 15h00
  3. comment détecter les faces d'un mur
    Par einegel dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/01/2005, 23h12
  4. Rendu de mesh "murs"
    Par Dranor dans le forum DirectX
    Réponses: 10
    Dernier message: 21/02/2004, 11h23

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