gpt4 book ai didi

linux - QT:如何在文本浏览器中显示 linux 命令输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:42 24 4
gpt4 key购买 nike

我想以编程方式运行 Linux 命令并在文本浏览器中显示输出。这是我的代码:

void MainWindow::on_pushButton_clicked(){
QString qstr;

FILE *cl = popen("ifconfig eth0", "r");
char buf[1024];
while (fgets(buf, sizeof(buf), cl) != 0) {
qstr = QString::fromutf8(buf);
ui->textBrowser->setText(qstr);
}
pclose(ls);
}

但是我在文本浏览器中什么也没有。如果我将 ui->textBrowser->setText(qstr); 中的 qstr 更改为任意 “string”,它工作正常。有帮助吗?!谢谢。

最佳答案

在您使用 popen 的示例中:

 qstr += QString::fromUtf8(buf);

但最好使用 QProcess。对于动态输出使用:

QProcess* ping_process = new QProcess(this);
connect(ping_process, &QProcess::readyReadStandardOutput, [=] {
ui->textBrowser->append(ping_process->readAllStandardOutput());
});
ping_process->start("ping", QStringList() << "8.8.8.8");

要使用 lambda,请不要忘记在您的 .pro 文件中添加:

CONFIG += c++11

关于linux - QT:如何在文本浏览器中显示 linux 命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com