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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut QGraphicsProxyWidget : "Error : 'objet->MyProxy::rotationY' cannot be used as a function"
    Salut!

    Je recois le message d'erreur suivant: "Error : 'objet->MyProxy::rotationY' cannot be used as a function".

    Voici les codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MyProxy : public QGraphicsProxyWidget
    {
    public:
        MyProxy();
        qreal rotationY();
        void setRotationY(qreal rotation);
        QPointF center();
    private:
        qreal m_rotationY;
        QPointF m_center; 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include "MyProxy.h"
     
    MyProxy::MyProxy()
    {
       setFlag(Itemismovable);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class MaScene: public QMainWindow
    {
        Q_OBJECT
     
    public:
        MaScene();
        ~MaScene();
     
        void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
     
    public slots:
        void updateScene();
        void placeItem(MyProxy *objet);
     
     
    private:
        QGraphicsProxyWidget *m_monProxy;
        QGraphicsScene *m_scene;
        QGraphicsView *m_view;
        QList<MyProxy *> m_objets;
     
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #include "MaScene.h"
    #include "MyProxy.h"
     
    MaScene::MaScene()
    {
        QWebView *web = new QWebView;
        web->load(QUrl("http://www.7sur7.be"));
        web->show();
     
     
     
        m_scene = new QGraphicsScene(this);
     
     
        m_scene->setSceneRect(0, 0, 1000, 800);
     
        m_monProxy = new QGraphicsProxyWidget();
        m_monProxy->setWidget(web);
     
        m_scene->addItem(m_monProxy);
     
        QTransform matrix;
        matrix.rotate(30, Qt::YAxis);
        matrix.translate(20, 30);
        m_monProxy->setTransform(matrix);
     
        m_view = new QGraphicsView();
        m_view->setScene(m_scene);
     
        setCentralWidget(m_view);
     
        QTimer *timer = new QTimer(this);
        timer->setInterval(30);
        connect(timer, SIGNAL(timeout()), this, SLOT(updateScene()));
        timer->start();
     
    }
     
    void MaScene::updateScene()
    {
        foreach (MyProxy *item, m_objets)
        {
            placeItem(item);
        }
    }
     
    void MaScene::placeItem(MyProxy *objet)
    {
        QTransform m;
        m.rotate(objet->rotation(), Qt::YAxis);
        m.translate(objet->center().x(), objet->center().y());
        m.translate(-objet->largeur(), -objet ->hauteur());
        objet->setTransform(m);
    }
     
    void MaScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
    {
        if(event->buttons() & Qt::LeftButton)
        {
            QPointF delta(event->scenePos() - event->lastScenePos());
            qreal rotation = delta.x();
            MyProxy->setRotation(rotation);
     
            QTransform matrix;
            matrix.rotate(MyProxy->rotation(), Qt::YAxis);
            MyProxy->setTransform(matrix);
        }
    }

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut
    Je viens d'apporter des modifications à MyProxy.
    Les voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class MyProxy: public QGraphicsProxyWidget
    {
        Q_OBJECT
     
    public:
        MyProxy();
        ~MyProxy();
     
        qreal rotationY();
        qreal hauteur();
        qreal largeur();
        void setRotation(qreal rotation);
     
        QPointF center();
     
     
    private:
        qreal m_rotationY, m_hauteur, m_largeur;
        QPointF m_center;
     
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    QPointF MyProxy::center()
    {
        return m_center;
    }
     
    qreal MyProxy::rotationY()
    {
        return m_rotationY;
    }
     
    qreal MyProxy::hauteur()
    {
        return m_hauteur;
    }
    qreal MyProxy::largeur()
    {
        return m_largeur;
    }
     
    void MyProxy::setRotation(qreal rotation)
    {
        m_rotationY = rotation;
     
        MyProxy *objet = new MyProxy;
        QTransform m;
        m.rotate(objet->rotationY(), Qt::YAxis);
        m.translate(objet->center().x(), objet->center().y());
        m.translate(-objet->largeur(), -objet ->hauteur());
        objet->setTransform(m);
    }
    Ma scene reste inchangée. Le message d'erreur suivant apparait et rien plus rien ne se passe quand à la rotation de l'image que j'attendais

    Message d'erreur: "QFont::setPixelSize: Pixel size <= 0 (0)"

    Je suis preneur de toute idée constructive.

    Merci d'avance

Discussions similaires

  1. [XL-2003] Création de TCD à partir de Macro ; Error : Objet requis + Total en Somme
    Par Axi91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/04/2013, 14h50
  2. 'staticData' cannot be used as a function
    Par Go'Gaule dans le forum Débuter
    Réponses: 2
    Dernier message: 26/06/2011, 10h06
  3. Error: objet requis : "Server"
    Par catadanna dans le forum VBScript
    Réponses: 1
    Dernier message: 29/07/2009, 10h22
  4. [POO] Bug IE "error : Objet attendu"
    Par eMeRiKa dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/04/2009, 09h34
  5. [FOP] [ERROR] non-static variable this cannot be referenced from a static context
    Par cash3000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/05/2006, 16h46

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