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);
}
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);
}