Qtで(matlabからの)impolyに似た関数を作成しようとしています。現在、QGraphicsViewのサブクラスがあり、仮想関数「drawBackground」を次のように設定しています。
void roiwindow::drawBackground(QPainter *painter, const QRectF &rect)
{
painter->save();
painter->drawImage(rect, *refimage);
painter->restore();
}
これはうまく機能し、基本的に背景レイヤーに関してはまさに私が望むものです。今、私は最終的にポリゴンのノードとして機能する円を追加しようとしています。私はこれを使用して行いました:
QGraphicsView *view = new QGraphicsView(this);
view->show();
QGraphicsEllipseItem *e1;
e1 = this->addEllipse(20, 20, 30, 30, QColor(0, 0, 0), Qt::white);
e1->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsMovable);
これは私が欲しいものの一種です。ただし、楕円をクリックしてドラッグすると、楕円の背景が* refimageの縮小バージョンになるという問題があります...これにより、画面全体に一種の縞が残りますが、別のウィンドウをクリックすると消えます。ウィンドウを最小化します。QGraphicsItemはdrawBackgroundも呼び出しますか?もしそうなら、それはアイテムがドラッグされているときにのみそれを呼び出すようです。これをより適切にコーディングする方法についての提案はありますか?ありがとう。