【问题标题】:Return QString value from void method inside a class从类中的 void 方法返回 QString 值
【发布时间】:2016-10-11 14:20:51
【问题描述】:

文件.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);
}

我在类 fileTxt 中有两个方法。 在方法 setFileTxt 中,我将 QString 成员文件名设置为 test.txt。 在file.h fileName 设置为private。 如果两个方法在同一个类中,为什么不将 fileName 传递给 elabFileTxt 方法? label_7 不打印任何内容。如果我使用“文件名”,label_7 会打印文件名。

【问题讨论】:

  • 这是一个非常基本的问题。我建议您在使用 Qt 实现代码之前花一些时间了解 C++ 的基础知识。 “C++ 编程语言”(B.Stroustrup) 是一个很好的起点。

标签: c++ qt qstring


【解决方案1】:

你正在重新声明和定义一个局部变量而不是你的类全局变量,你想要的是这样的:

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

【讨论】:

  • 是的,这是一个非常新的错误(我)。谢谢
【解决方案2】:

您不能从具有void 返回类型的函数返回QString

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

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

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

【讨论】:

    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 2014-04-23
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多