Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Ноябрь 25, 2017, 12:40



Название: qprocess+форматирование
Отправлено: koldun90 от Ноябрь 25, 2017, 12:40
Здравствуйте пишу простенькую программку форматирования дисков
Вся проблема заключается в том что не идет сигнал readyreadstandartoutput
По нажатию на pushbutton должно начать форматирование
Код
C++ (Qt)
void MainWindow::knopkaClicked()
{
    connect(&pr,SIGNAL(readyReadStandartOutput()),this,SLOT(getoutput()));
   pr.start("/usr/bin/dvd+rw-format",QStringList()<<"-fast"<<"/dev/sr0:;
}


//Здесь по идее просто обработка событий из очереди и вывод в textedit
Код
C++ (Qt)
void MainWindow::getoutput()
{
   QApplication::processEvents();
   QString rex=pr.readAllStandartOutput()
   ui->textedit->setText(rez)
}
pr- объект класса QProcess объявленный в секции Public (QProcess pr)

Вообщем когда начинается форматирование диска и когда оно заканчивается pr испускает сигнал и started и finished (я проверял)
Но проблема в том что сигнал readyReadStandartOutput() не испускается вообще (на протяжении всего процесса форматирования). По моей задумке во время стирания диска должен вертеться прогресс бар туда-сюда, но этого не происходит по причине что не испускается readyReadStandartOutput()
Так вот в чем может быть проблема?



Название: Re: qprocess+форматирование
Отправлено: qate от Ноябрь 27, 2017, 08:25
может он в stderr пишет ?
QApplication::processEvents(); - это зачем ?


Название: Re: qprocess+форматирование
Отправлено: koldun90 от Ноябрь 27, 2017, 20:31
чтобы прогресс бар туда сюда бегал


Название: Re: qprocess+форматирование
Отправлено: koldun90 от Ноябрь 27, 2017, 20:55
может он в stderr пишет ?
QApplication::processEvents(); - это зачем ?

Да действительно он пишет в stderr и испускает сигнал readyreadstandarterror()
правда это странно форматирование завершается успешно по сигналу finished код возврата ноль и QProcess:NormalExit
readyreadstandartoutput--вообще не испускается ни разу

хм...... может быть особенность данной программы


Название: Re: qprocess+форматирование
Отправлено: qate от Ноябрь 28, 2017, 09:52
чтобы прогресс бар туда сюда бегал

лучше сделать событие Qt::QueuedConnection

а пишет он в stderr наверно потому, что stdout использует для pipe