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

  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