我在Ubuntu上使用QT Creator . 我有一个带有主窗口的GUI和另一个名为“progress”的窗口 . 单击按钮后,QProcess将启动并执行rsync命令,该命令将文件夹复制到特定目录中 . 我创建了一个textbrowser,它读取rsync命令的输出 . 同时单击该按钮会弹出“进度”窗口 . 到目前为止这么好,现在我的问题 . 而不是在我的主窗口中显示rsync输出,我希望它正在进行中 . 我已经尝试了几种方法来通过连接让QProcess进入进度但这似乎不起作用 .
mainwindow.cpp
void MainWindow::on_pushButton_clicked()
{
if (ui->checkBox->isChecked()
)
m_time ="-t";
QObject parent;
m_myProcess = new QProcess();
connect(m_myProcess, SIGNAL(readyReadStandardOutput()),this, SLOT(printOutput()));
QString program = "/usr/bin/rsync";
arguments << "-r" << m_time << "-v" <
<< m_dir
<< m_dir2;
m_myProcess->start(program, arguments);
}
progress.cpp
void Progress::printOutput()
{
ui->textBrowser->setPlainText(m_myProcess->readAllStandardOutput());
}
我知道's pretty messy iv'我尝试了很多东西,而且还很新鲜 . 我的目标是通过连接发送QProcess(m_myProcess)进展,但这似乎不起作用 . 你可以通过连接到其他窗口发送像 readyReadAllStandardOutput 这样的命令(我不知道正确的术语)?我是在做错了还是只有另一种方法可以将输出输出到我的进度窗口?