我正在使用带有 QT4 的 Ubuntu 10.10。
我想知道 QlistWidget 是否可以显示 Eg 的输出:
system("dhclient eth0");
然后让 qlistWidget 实时显示 DHCPREQUEST/SHCPACK 等?
到目前为止,我只能将命令的输出通过管道传输到一个文件,然后让我的程序读取该文件,这显然没有显示此刻交换的 DHCP 数据包。
最佳答案
好的,我解决了,这是我如何做的一个简短示例,我只会展示我的实现
test::test()
{
widget.setupUi(this);
call();
QObject::connect(&proc,SIGNAL(readyReadStandardOutput()),this,SLOT(stdOut()) );
QObject::connect(&proc,SIGNAL(readyReadStandardError()),this,SLOT(stdErr()) ) ;
QObject::connect(&proc,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(bye(int,QProcess::ExitStatus)) );
}
void test::call()
{
proc.start("dhclient eth0");
}
void test::stdErr()
{
QByteArray data = proc.readAllStandardError();
widget.listWidget->addItem(QString(data));
}
void test::stdOut()
{
QByteArray data = proc.readAllStandardOutput();
widget.listWidget->addItem(QString(data));
}
void test::bye(int code,QProcess::ExitStatus exit)
{
if(code ==0)
{
widget.listWidget->addItem("Done");
}
}
关于c++ - dhclient 实时输出到 QlistWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077802/