我們有一個QWidget
這是由addWidget
添加到場景。我們希望在切換到不同的場景時保持顯示。我們的方法是通過removeItem
將其暫時從場景中移除,並在切換到另一場景後,我們呼叫addWidget
重新添加它。然而,第二addWidget
引發錯誤:QWidget的通過的removeItem場景中刪除無法重新添加到另一個場景
QGraphicsProxyWidget::setWidget: cannot embed widget 0x7835ec8; already embedded
錯誤可以通過下面的代碼被複制:
QWidget *widget = new QWidget;
scene->addWidget(widget);
scene->removeItem(widget->graphicsProxyWidget());
scene->addWidget(widget);
似乎removeItem
並沒有真正清除深嵌的狀態。有人知道這裏發生了什麼?或者還有其他好的方法來滿足我們的要求嗎?
Qt的版本Qt的是5.3.2。
謝謝!
您的代碼不編譯我。 'removeItem'需要一個'QGraphicsItem',而不是'QGraphicsProxyWidget'。 – jpo38
您需要添加'#include'來傳遞編譯。對不起,我沒有明確提及它。 –
wthung