QToolbar 在第二次调用 show / setVisible(true) 之前不可见



我面临着某种谜团:

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 并调用 show() 时,QToolbar 没有出现。但它会显示在第二次点击和之后的每隔一次点击。

知道它来自哪里吗?

感谢

编辑:这是我在自定义类中调用的函数。 _currentNode是指向自定义 QGraphicsItemGroup 子类的指针。

void NodeMenu::show(GraphicsNodeItem * node) {
_currentNode = node;
_menuTop.show();
_menuBottom.show();
}

找到了一个解决方案:

我在自定义对象的构造函数中添加了以下内容:

_menuTop.show();
_menuBottom.show();

我不知道这是否是一个很好的解决方案,但它对我有用。

相关内容

  • 没有找到相关文章

最新更新