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

Discussion :

Meilleur choix d'objet pour un une interface avec fenêtre glissante

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Par défaut Meilleur choix d'objet pour un une interface avec fenêtre glissante
    Bonjour,

    Désolé pour le titre pas très clair mais je ne sais pas comment mieux l'exprimer.

    Voila je cherche a faire une IHM avec un ensemble de bouton, et que cette IHM soit défilante (en gros le meme principe que la page avec les applications sur android mais j'hesite sur la bonne solution a appliquer?

    Je pense que c'est jouable avec QtQuick et QML mais j'aurai préféré rester sous Qt classique (par habitude).
    Voici grosso modo ce que je voudrais obtenir:
    Les carrés violets seraient des widgets hérités de QPushButton, les titres ainsi que la barre horizontale je pense que ca serait des QLabel, et sur la droite je voudrais un slider qui permette de défiler rapidement dans la page en affichant (cadre vert) la zone affichée a l'écran.
    Il faut également que je puisse faire défiler la fenetre principale en faisant un glisser.

    Nom : IHM.png
Affichages : 216
Taille : 19,0 Ko


    Quel serait l'objet Qt le plus adapté pour servir de base?

    Merci d'avance

    Cordialement

    vincent

  2. #2
    Membre très actif
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Billets dans le blog
    1
    Par défaut
    Bonjour modelvincent,

    A vue de nez je dirais que tu dois regarder du côté des QScrollArea. En configurant le widget pour qu'il est le bon comportement tu devrais avoir des résultats satisfaisants !
    Pour le suivi du scroll tu dois pouvoir récupérer la valeur de défilement de la zone et après la reporter ailleurs (zone de défilement sur le côte (cadre vert)) et processus inverse pour le défilement rapide.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Par défaut
    Merci pour l'idée du QScrollArea, avec un petit QScroller par dessus pour pouvoir faire glisser a la main c'est nickel:

    pour ceux que ca interesse voici le code pour faire slider une QScrollArea a la main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     QVariant OvershootPolicy = QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff);
        QScrollerProperties ScrollerProperties = QScroller::scroller(this->ui->scrollArea->viewport())->scrollerProperties();
        ScrollerProperties.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, OvershootPolicy);
        ScrollerProperties.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, OvershootPolicy);
     
        ScrollerProperties.setScrollMetric(QScrollerProperties::MousePressEventDelay, 0.1);
     
        QScroller::scroller(this->ui->scrollArea->viewport())->setScrollerProperties(ScrollerProperties);

    Par contre j'ai un petit soucis avec le slider latéral, j'esperais pouvoir remplacer le QScrollBar par un autre widget directement, j'ai bien un QScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment) mais soit je ne sais pas l'utiliser, soit c'est pas fait pour ca?

    J'aurai voulu éviter de passer par le paintEvent pour redessiner de 0 mon slider, si quelqu'un a une idée?

  4. #4
    Membre très actif
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Billets dans le blog
    1
    Par défaut
    Tu peux peut-être le forcer à "hidden" et lier le défilement à un widget custom extérieur. C'est la première idée qui me vient à l'esprit...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Par défaut
    Citation Envoyé par smarlytomtom Voir le message
    Tu peux peut-être le forcer à "hidden" et lier le défilement à un widget custom extérieur. C'est la première idée qui me vient à l'esprit...
    Salut,

    Oui merci c'est effectivement la solution sur laquelle je suis parti du coup, mais j'aurais cru que l'on pouvait "customiser" le slider d'origine par un autre widget, pas grave.

    L'avantage c'est que meme si le slider est en hidden (précisement sur AlwaysOff) j'ai toujours les coordonnées de taille et tout ca qui apparaissent donc ca va m'etre pratique pour mon slider.

    @+

  6. #6
    Membre très actif
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par modelvincent
    Oui merci c'est effectivement la solution sur laquelle je suis parti du coup, mais j'aurais cru que l'on pouvait "customiser" le slider d'origine par un autre widget, pas grave.
    Tu peux le faire en créant un classe qui hérite de QScrollBar. Seulement pour l'apparence tu va devoir passer par la surcharge de la méthode paintEvent. En regardant un peu comment tout cela fonctionne ça ne devrait pas être trop compliqué à mettre en place !

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/05/2018, 03h02
  2. Besoin d'un conseil pour creer une interface avec Guide
    Par rhand dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/07/2012, 13h13
  3. Réponses: 25
    Dernier message: 11/06/2012, 16h39
  4. Réponses: 5
    Dernier message: 26/03/2011, 18h29

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