Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将QString传递给类构造函数会更改新类中的QString_C++_Qt - Fatal编程技术网

C++ 将QString传递给类构造函数会更改新类中的QString

C++ 将QString传递给类构造函数会更改新类中的QString,c++,qt,C++,Qt,我试图将一个字符串(将文件名保存到图像)传递给类构造函数 // pushbutton function call to open new window void SelectTest::on_upperSideStart_clicked() { QString imageFile = ui->upperSideEdit->text(); uppersidewindow = new upperSideWindow(imageFile, this); upper

我试图将一个字符串(将文件名保存到图像)传递给类构造函数

// pushbutton function call to open new window
void SelectTest::on_upperSideStart_clicked()
{
    QString imageFile = ui->upperSideEdit->text();

    uppersidewindow = new upperSideWindow(imageFile, this);
    uppersidewindow->show();
}

// new class constructor
upperSideWindow::upperSideWindow(const QString &_imageFile, QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::upperSideWindow)
{
    ui->setupUi(this);
    *image = QImage(_imageFile);
    qDebug() << image->size();
}

为什么会发生这种情况?

这似乎是调试器的问题。使用:

qDebug() << "image file: " << _imageFile

qDebug()问题:您的程序工作正常吗?查明这是否是调试器问题,或者字符串是否确实发生了更改。另外,您正在使用什么编译器/调试器?发布声明imageFile的代码片段。猜测一下,由于您传递的是对imageFile的引用(而不是副本或共享指针),imageFile将超出范围。程序无法正常工作。当图像打开时,存在SEG故障。我一直在看一个例子,看起来Qt有一些内置类,用于处理我将要研究的文件路径。(我认为不使用转义序列斜杠可能会导致问题。我使用的是Mingw。最初,我尝试传递一个副本,我想看看它是否有区别(它没有)。这是关于我声明imageFile的位置的一个很好的观点,但它似乎不是根。@Langleson您的输出在“before”中显示正向斜杠,因此无需转义这些字符。
qDebug() << "image file: " << _imageFile