Hi all,
I face a problem in Qt, QDeclarativeView can not delete after constructing via pointer. It throws an exception: Segmentation fault. 
Could you tell me a solution
This my code:
MainWindow::MainWindow()
{
m_pView = QDeclarativeView(); // CONSTRUCT NEW QtDeclarativeView
m_pView->setSource("qrc:/UI/main.qml");
setCentralWidget(m_pView);
setFocus();
centralWidget()->setFocus();
}
MainWindow::ChangeView()
{
QDeclarativeView* pOldView = m_pView;
m_pView = QDeclarativeView();
m_pView->setSource("qrc:/UI/main.qml");
setCentralWidget(m_pView);
setFocus();
centralWidget()->setFocus();
delete pOldView; // DESTROY THE POINTER; EXCEPTION HERE
}
main()
{
MainWindow w;
w.show();
w.ChangeView();
}
MainWindow::MainWindow()
{
m_pView = QDeclarativeView(); // CONSTRUCT NEW QtDeclarativeView
m_pView->setSource("qrc:/UI/main.qml");
setCentralWidget(m_pView);
setFocus();
centralWidget()->setFocus();
}
MainWindow::ChangeView()
{
QDeclarativeView* pOldView = m_pView;
m_pView = QDeclarativeView();
m_pView->setSource("qrc:/UI/main.qml");
setCentralWidget(m_pView);
setFocus();
centralWidget()->setFocus();
delete pOldView; // DESTROY THE POINTER; EXCEPTION HERE
}
main()
{
MainWindow w;
w.show();
w.ChangeView();
}
To copy to clipboard, switch view to plain text mode
Bookmarks