我试图在QTextEdit框中显示Raspberry Pi的IP地址;
onCreateView(...)
问题是这会将IP地址显示为0。
如何让它显示实际的IP地址?
答案 0 :(得分:1)
这不是"问题",因为:
QString::number(system("hostname -I"));
返回" 0" (很可能是因为system("hostname -I")
命令结果为0),因此QTextEdit
显示0
。
请注意,当您运行流程时:
main
函数返回值)作为整数。在大多数情况下,0意味着它成功,其他任何意味着它失败。std::cout
的内容)。因此,当您调用system("hostname -I"))
时,如果成功则返回0,然后您需要解析其标准输出以查找此处打印的IP地址。
您可以使用QProcess
或将其重定向到文件,然后阅读文件(system("hostname -I > ip.txt")
可能有效,待测试)来捕获呼叫的标准输出
或者,要将您的IP地址作为文字,最好使用QNetworkInterface,检查this post,然后您就可以在QTextEdit中显示它。
答案 1 :(得分:1)
使用system()
很难看,除非您正在编写一次性项目,否则应考虑使用QNetworkInterface
类来执行此操作。
答案 2 :(得分:0)
尝试此代码:
for (QHostAddress address: QNetworkInterface::allAddresses())
if (address.protocol() == QAbstractSocket::IPv4Protocol)
IPAddress->append(address.toString());