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 :

Rotation d'un widget fils


Sujet :

Qt

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut Rotation d'un widget fils
    Bonjour à tous,

    J'ai un petit soucis je voudrais faire pivoter des widget.
    J'ai lu le tuto sur les graphcsscene sur le site mais en l'appliquant dans mon cas je n'ai rien qui s'affiche.

    J'ai un widget custom qui contient d'autres widgets. Et je voudrais faire tourner certains de ces widgets fils.

    Pouvez vous m'aiguiller sur une piste?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    Pouvez-vous nous montrer le code qui pose problème utilisant QGraphicsScene, de sorte que l'on ait une base sur laquelle s'appuyer pour répondre à votre question ?

    Bonne journée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Alors j'ai copié collé ce morceau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        QPushButton *bouton = new QPushButton("Mon bouton entre en scène !", this);
        QGraphicsScene scene;
        QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
        proxy->setWidget(bouton);
        proxy->setRotation(90);
        scene.addItem(proxy);
        QGraphicsView view(&scene, this);
        view.show();
    Que j'ai ensuite placé dans le paintEvent du widget père et ça n'affiche rien.

  4. #4
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonsoir,

    Le principe de QGraphicsScene est de contenir des éléments graphiques, par exemple un QGraphicsProxyWidget comme ce que vous avez utilisé, puis d'être affiché par un widget, une instance de QGraphicsView. Cependant, ce n'est pas quelque chose qui se met dans un paintEvent() : cette méthode ne doit en général contenir que des utilisations de QPainter et de ses méthodes (drawRect, drawImage, etc.). Si vous prenez ce code est que vous le placez dans votre main, vous constaterez que ça affiche vraiment quelque chose, un bouton ayant une rotation de 90°.

    Bonne soirée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Bonsoir,

    Merci de cette réponse rapide.
    Dans ce cas vers quelle solution puis je m'orienter ?

    Sachant que je ne peux pas modifier le main.

  6. #6
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    J'ai modifié un peu le code.

    J'ai placé cette partie dans le constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        QPushButton *bouton = new QPushButton("Mon bouton entre en scène !", this);
        QGraphicsScene scene;
        QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
        proxy->setWidget(bouton);
        proxy->setRotation(90);
        scene.addItem(proxy);
        QGraphicsView view(&scene, this);
    J'ai bien un affichage mais plus de rotation.

    Qu'en pensez vous ?

  7. #7
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    Par durée de vie, vos éléments QGraphicsScene et QGraphicsView sont détruits automatiquement à la fin de votre constructeur, d'où l'absence de résultat. De même, le fait de mettre "this" dans le constructeur du bouton mène à l'intégrer dans le widget possédant le constructeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    QPushButton *bouton = new QPushButton("Mon bouton entre en scène !");
    QGraphicsScene *scene = new QGraphicsScene;
    QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget;
    proxy->setWidget(bouton);
    proxy->setRotation(90);
    scene->addItem(proxy);
    QGraphicsView *view = new QGraphicsView(scene, this);
    view->show();
    Qu'en est-il avec ceci ?

    Bonne journée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  8. #8
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Désolé j'avais oublié de marqué résolu.

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Reproduire la rotation de layout (voir widget genie meteo et news nexus one).
    Par zippeurfou dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 30/07/2010, 21h48
  2. [Perl] Accès à un widget fils en particulier
    Par psychonaute dans le forum GTK+
    Réponses: 3
    Dernier message: 31/01/2008, 15h03
  3. Récupérer les fils d'un widget
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 3
    Dernier message: 12/10/2007, 10h13
  4. matrice et rotation
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/12/2002, 17h59
  5. algo : rotation d'objet 3d
    Par numeror dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2002, 22h58

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