Return class 中 void 方法的 QString 值

Return QString value from void method inside a class

file.cpp

fileTxt::fileTxt()
{

}

fileTxt::~fileTxt()
{

}

void fileTxt::setFileTxt(Ui::Dialog *ui)
{
    QString fileName="test.txt"
}

void fileTxt::elabFileTxt(Ui::Dialog *ui)
{
    ui->label_7->setText(fileName);
}

我在 class fileTxt 中有两个方法。 在 setFileTxt 方法中,我将 QString 成员文件名设置为 test.txt。 在 file.h fileName 中设置为 private。 如果这两个方法在同一个 class 中,为什么 fileName 没有传递到 elabFileTxt 方法中? label_7 什么都不打印。如果我使用 "file name",label_7 打印文件名。

您正在重新声明和定义局部变量而不是 class 全局变量,您想要的是:

void fileTxt::setFileTxt(Ui::Dialog *ui)
{
    fileName="test.txt";
}

您不能 return 来自具有 void return 类型的函数的 QString

但是您可以在这里利用面向对象的优势。

您将 QString 成员添加到 class 并设置它。

class fileTxt //...
{
    //...
    private:
        QString fileName;
};

然后使用成员变量

void fileTxt::setFileTxt(Ui::Dialog *ui)
{
    fileName="test.txt" //uses class member fileName
}

void fileTxt::elabFileTxt(Ui::Dialog *ui)
{
    ui->label_7->setText(fileName);
}