C++ 次品停止,因为它触发了异常。在线程0中因异常而停止…?

C++ 次品停止,因为它触发了异常。在线程0中因异常而停止…?,c++,qt,debugging,C++,Qt,Debugging,我有一个选择文件的代码,但是当对话框打开时,如果我没有选择任何文件。整个程序崩溃了。 代码: 我已经在头qstringxmlpath中定义了xmlpath,并在构造函数中将其初始化为xmlpath= 错误: The program has unexpectedly finished. 调试时: 编辑:根据我需要启动varibale,我做到了 编辑2: 无效主窗口::在工具按钮上单击打开前进 { qDebug如果用户没有选择文件,“getOpenFileName”方法将返回NULL。 因此,在

我有一个选择文件的代码,但是当对话框打开时,如果我没有选择任何文件。整个程序崩溃了。 代码:

我已经在头qstringxmlpath中定义了xmlpath,并在构造函数中将其初始化为xmlpath=

错误:

The program has unexpectedly finished.
调试时:

编辑:根据我需要启动varibale,我做到了

编辑2:

无效主窗口::在工具按钮上单击打开前进 {
qDebug如果用户没有选择文件,“getOpenFileName”方法将返回NULL。
因此,在将“xmlpath”传递给后续语句之前,请检查它是否等于NULL。

如果用户没有选择文件,“getOpenFileName”方法将返回NULL。 因此,在将“xmlpath”传递给后续语句之前,请检查它是否等于NULL。

getOpenFileName返回NULL字符串NOTNULL。是否执行此操作

qDebug()<< "this is before:"+xmlpath;
xmlpath = QFileDialog::getOpenFileName(this,tr("Open File"),MainWindow::getWorkingDirectory()+"/0_Config",tr("XML files (*.xml *)"));
qDebug()<<"this is after:"+xmlpath;
if (!xmlPath.isNull()) {
    ui->lineEdit_7->setText(xmlpath);
} else {
    qDebug() << "No file selected";
}
getOpenFileName返回空字符串而不是空字符串。是否执行此操作

qDebug()<< "this is before:"+xmlpath;
xmlpath = QFileDialog::getOpenFileName(this,tr("Open File"),MainWindow::getWorkingDirectory()+"/0_Config",tr("XML files (*.xml *)"));
qDebug()<<"this is after:"+xmlpath;
if (!xmlPath.isNull()) {
    ui->lineEdit_7->setText(xmlpath);
} else {
    qDebug() << "No file selected";
}

可能的重复是重复的,但这并不能解决我的问题,尽管我认为你提供的代码不足以引发问题。你能举一个简单的例子,包括从Qt main到click handler的所有内容吗?@user5820174它不是你链接的重复,错误代码不匹配。请跟随我的链接,t在这里输入答案,如果不适用,请回答,这样做并不能防止问题重复。不,这似乎对我不起作用。可能的重复是问题的重复,但这并不能解决我的问题,尽管我认为你提供的代码不足以触发问题。你能做一个简单的检查吗包括从Qt main到click handler的所有内容吗?@user5820174它不是你链接的副本,错误代码不匹配。跟随我的链接,在此处尝试解决方案,如果不适用,则在此处答复,以防止问题重复。不,这似乎对我不起作用。这是在之前:这是在之后:我想当我不选择文件时,它会删除空字符,但它之前有一个空字符。即使我不选择文件,我如何保持空字符。@kockieSorry,我不明白。这是before,这是after,这是什么意思?这是我在前后放的一个调试命令,请检查EDIT2的代码。我仍然不确定我是否理解它od,但请记住,空字符串和NULL是两个完全不同的东西。这是在之前:这是在之后:我认为当我不选择文件时,它会删除NULL,但它之前有一个NULL字符。即使我不选择文件,我如何保持NULL字符。@kockieSorry,我不明白。这是什么意思是在之前,这是在之后?这是我在之前和之后放的一个调试命令,请检查EDIT2的代码。我仍然不确定我是否理解,但请记住,空字符串和NULL是两个完全不同的东西。