私はある種の謎に直面しています:
if( itemSelectionne->parentItem()->type() == NodeType) {
((GraphicsScene*) this->scene())->unselectAll();
itemSelectionne->parentItem()->setSelected(true);
//Coordinate of my toolbar, works fine
int centreX = itemSelectionne->pos().x() +
itemSelectionne->boundingRect().center().x();
int centreY = itemSelectionne->pos().y() +
itemSelectionne->boundingRect().center().y();
QPointF point = this->mapFromScene(
itemSelectionne->mapToScene(QPoint(centreX, centreY))
);
_nm.move(point.x(), point.y());
_nm.show((GraphicsNodeItem*) itemSelectionne->parentItem());
}
QGraphicsView をマウスでクリックした後、このコードを入力して QToolbar を表示します (_nm は 2 つの QToolbar を含むカスタム オブジェクトです。Show(...) QToolbar の show() を呼び出します)。 if と call show() QToolbar が表示されません。ただし、2回目のクリックとその後のすべてのクリックで表示されます。
それがどこから来たのか、何か考えはありますか?
どうも
編集:これは、カスタムクラスで呼び出す関数です。_currentNode は、カスタム QGraphicsItemGroup サブクラスへのポインターです。
void NodeMenu::show(GraphicsNodeItem * node) {
_currentNode = node;
_menuTop.show();
_menuBottom.show();
}