2009-11-21 6 views
0

QHBoxLayout 내부에서 위젯을 교환하고 싶습니다. 이 코드는 작동하지만, 실제로는 app._exec()을 실행하면 코드가 terminate called after throwing an instance of 'boost::python::error_already_set'과 충돌합니다. 실제 오류 메시지를받을 방법이 있습니까?PySide Qt4 widget exchange in hboxlayout

gaParent = gameArea.parent().layout() 
gaParent.removeWidget(gameArea) 
gameArea = DrawingScreen() 
gameArea.setObjectName("gameArea") 
gaParent.insertWidget(0, gameArea) 
+0

'gameArea'를 제거하지 않으면 작동합니까? 참조를 업데이트하는 중 문제가 생겼습니다 ...'gameArea.destroy()'또는'gameArea.deleteLater()'를 호출하여'gameArea.setParent (None)'호출을 시도 했습니까? – mata

답변

0

나는 C++ 남자와 Pythonist 너무 많은 아니에요 (또는이 문제를 해결하기 위해) 때문에,이 아무 의미가없는 경우 실례합니다. 그러나, 내 관점에서 보면 gameArea.parent(). layout()이 QLayout을 반환하는 것처럼 보입니다. 해당 객체에는 insertWidget 메서드가 없습니다.

그 외에도 boost :: python :: error_alread_set의 출처가 확실하지 않습니다. 부스트 오류가 언제 사진에 들어갈 지 판단하기 위해 지능적인 인쇄물을 사용할 수 있습니까?

+0

예 - QLayout이지만 정확히 QHBoxLayout입니다 (여기서 캐스팅이 필요 없습니다). 불행히도 나는 다른 것에 접근 할 수 없다고 생각한다 - app._exec()와 그 전에 무언가가 내부적으로 실패하기 때문에 어떤 방식 으로든 그것을 잡을 수 없다. 전체 앱이 종료된다. – viraptor

+0

Qt 이상을 어떻게 사용합니까? 내 지식으로는 Qt가 boost에 기반하지 않는다 ... (비 파이썬리스트에게 묻는다) – e8johan

+0

e8johan : qt4에 대한 pydide 인터페이스가 boost를 사용하여 생성된다. – viraptor