我有以下代码;
void MainWindow::saveFile()
{
Editor *editor = dynamic_cast<Editor*>(tabWindow->currentWidget());
QFileInfo *fileInfo = editor->getFileInformation();
QString fullFileName = fileInfo->absoluteFilePath();
QFile file(fullFileName);
file.open(QIODevice::ReadWrite);
QString text = editor->toPlainText();
file.write(QByteArray::fromStdString(text.toStdString()));
file.close();
}
当通过以下部分连接时;
connect(save, &QAction::triggered, this, &MainWindow::saveFile);
程序在调用事件时崩溃。如果禁用连接,程序运行正常。经过几次,我无法分辨出问题是什么。我在Windows 10和Ubuntu 15.10上尝试过它并且遇到了完全相同的问题。我做错了什么?
save在头文件中声明为;
QAction *save = nullptr;
然后在与saveFile()函数相同的文件中定义为;
save = new QAction(tr("Save"), this);
save->setShortcut(QKeySequence(tr("Ctrl+S")));
fileMenu->addAction(save);
connect(save, &QAction::triggered, this, &MainWindow::saveFile);