void MainWindow::save()
{
const int currentIndex = tabWidget->currentIndex();
if( currentIndex == -1 )
return;
QString filepath = m_fileList.at( currentIndex )->filepath();
if( filepath.isEmpty() )
{
QString filters = tr("All files(*.*);;Textfiles(*.txt)");
filepath = QFileDialog::getOpenFileName( this, tr("Save file"), QDir::homePath() );
if( filepath.isEmpty() )
return;
}
QFile file( filepath );
if( !file.open( QIODevice::WriteOnly | QIODevice::Text ) )
return;
QTextStream str( &file );
str << m_fileList.at( currentIndex )->textEdit()->toPlainText();
file.close();
}
以上代码仅在调试时有效!如果我运行它,它会崩溃。但是,当我使用调试器并完成每个步骤时,它不会。当我通过终端启动程序并让它崩溃时,它会显示Segmentation fault。我评论了很多东西并运行它,看看它到底崩溃了。显然,当我调用QFileDialog时,它会崩溃。它从未在调试模式下显示。
怎么了?我在linux机器上(Ubuntu)