のに問題がQGrahicsRectItem
ありQGraphicsScene
ます。マウスでアイテムを動かせるようにしたいと思います。しかし、問題は、私の場合、ドラッグする長方形がアイテム自体よりも大きいことです。
これが私が使用するコードです:
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());
}
したがって、プログラムを実行すると、このウィンドウが表示され、アイテムをドラッグできます。すべて問題ないようです。
しかし、よく見ると、ドラッグゾーンはアイテム自体よりも大きくなっています。(次のスクリーンショットの青い長方形を参照してください)青い長方形は、この長方形内でマウスを動かすと、カーソルが変わり、アイテムをドラッグできることを意味します。
問題は「fitInView(scene()->sceneRect());」に関連していると感じています。ライン。削除すれば動作します。たとえば、「scale(5,1)」を追加すると、同じ問題が発生します。
問題が何であるかについての考えがありますか?