Bonjour,

J'ai un problème en tentant d'utiliser les QGraphicsRectItem. Je voudrais tout simplement pouvoir les déplacer, et pour cela j'ai utilisé le flag ItemIsMovable. J'arrive à déplacer les objets, seulement lorsque je clique un peu à gauche du rectangle l'objet est quand même sélectionné.
C'est à dire que la zone de sélection est plus grande que l'objet lui-même. Même constat pour le curseur que j'ai modifié avec pItem->setCursor(Qt::SizeAllCursor);

J'ai remarqué que le si j'enlevais mes fitInView, il n'y avait plus ce problème.
Mais si je fais sun scale(5, 1) dans le constructeur par exemple, j'ai de nouveau le problème.



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
 
    class Test: public QGraphicsView
    {
    public:
    Test();
 
    private:
    virtual void resizeEvent (QResizeEvent * event);
    QGraphicsScene* m_pScene;
    };
 
    Test::Test()
    {
    m_pScene = new QGraphicsScene();
    setScene(m_pScene);
 
    m_pScene->setSceneRect(0, 0, 100, 100);
 
    for (int i = 0 ; i < 10 ; i++)
    {
    QGraphicsRectItem * pItem = new QGraphicsRectItem();
    pItem->setFlag(QGraphicsItem::ItemIsMovable);
    pItem->setBrush(QBrush(QColor(190, 100, 100)));
    pItem->setRect(QRectF(10*i, 10, 5, 80.f));
    pItem->setCursor(Qt::SizeAllCursor);
    m_pScene->addItem(pItem);
    }
 
 
    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 
    resize(600, 200);
    fitInView(scene()->sceneRect());
    show();
    }
 
    void Test::resizeEvent(QResizeEvent * event)
    {
    QGraphicsView::resizeEvent(event);
    fitInView(scene()->sceneRect());
    }


en bleu la zone de sélection effective (je l'ai rajouté à la main sous paint)


Une idée d'où ça peut venir?
Merci d'avance