【发布时间】:2017-08-04 11:29:05
【问题描述】:
我正在尝试将 QProcess 的标准输出读取为 QString,其中传递的参数是 linux 命令。 linux 命令给了我 linux 用户名。当我将参数传递给 QProcess 时,我希望输出是我的 linux 用户名。在这样做时,我必须读取标准输出并得到QString 的结果,但我得到了错误:
QString& QString::operator=(const QByteArray&)' is private.
我的代码:
QProcess process;
process.start(QString::fromStdString("whoami"));
process.waitForFinished(-1); // will wait forever until finished
QByteArray name = process.readAllStandardOutput();
QString username = name; //Error here saying
【问题讨论】:
-
这很奇怪,this reference 说
operator=(const QByteArray&)函数是公开的。你正在做一些你现在向我们展示的事情吗?您能创建一个Minimal, Complete, and Verifiable Example 并展示给我们看吗? -
另外,您向我们展示的错误实际上与您向我们展示的代码不匹配。对于
QString username = name,应该使用publicconstructor 或QString,而不是赋值运算符。再次,请向我们展示MCVE 和实际错误(完整、完整且未经修改)。 -
username 是在 .h 文件中声明为静态 QString 用户名的类变量。在上面的代码中: - username = name 被使用。因此调用了赋值运算符。
-
那么请编辑您的问题,向我们展示Minimal, Complete, and Verifiable Example。不要只是编写代码。当您编辑问题时,在将 MCVE 构建到问题正文中时,复制粘贴(作为文本)完整输出。