Size: a a a

2020 May 14

v

vehlwn in pro.cxx
ARCHANGEL
а как надо?
источник

v

vehlwn in pro.cxx
ARCHANGEL
Парни, есть вопрос по плюсам и кутэ:

class MyShell: public QObject
{
 Q_OBJECT
public:
 MyShell(QTextEdit* output) : QObject(nullptr),
   process(new QProcess()), m_output(output)
 {
   QObject::connect(process,
     SIGNAL(readyRead()),
     SLOT(PrintOutput()));
 }
 void start(const QString& params) const
 {
   process->start(params);
   m_output->append("Starting " + params);
   process->waitForReadyRead();
 }

private:
 QProcess* process;
 QTextEdit* m_output;

 Q_SLOT void PrintOutput()
   {
     while (process->canReadLine())
     {
       m_output->append(process->readLine());
     }

   QObject::connect(process,
     SIGNAL(readyRead()),
     SLOT(PrintOutput()));
     process->waitForReadyRead();
   }
};


Вот создаю процесс, потом хочу его стандартный аутпут к себе в текстовое многострочное поле перенести. И первая строка копируется, а потом тишина. Я уж всякие извращения пробовал, типа как в этом коде - повторно коннектить сигналы и слоты, но не работает. Может, есть у кого-то идеи?
while (process->canReadLine())
Поллить то зачем? У купроцесса разве нет readAll, как у нетворк реплей?
источник

A

ARCHANGEL in pro.cxx
я читал эту доку. Там вот ещё какая фигня, что юзается QPrivateSignal, чтоб нельзя было на лямбду повесить хэндлинг
источник

A

ARCHANGEL in pro.cxx
а только на метод
источник

AZ

Alexander Zaitsev in pro.cxx
у кого-нибудь есть опыт выбора форматтера для кода между clang-format vs uncrustify? Чем один другого хуже\лучше?
источник

v

vehlwn in pro.cxx
vehlwn
while (process->canReadLine())
Поллить то зачем? У купроцесса разве нет readAll, как у нетворк реплей?
Inherits:  QIODevice
Да есть.
источник

v

vehlwn in pro.cxx
ARCHANGEL
я читал эту доку. Там вот ещё какая фигня, что юзается QPrivateSignal, чтоб нельзя было на лямбду повесить хэндлинг
connect(
   sender, &Sender::valueChanged,
   receiver, &Receiver::updateValue
);
источник

A

ARCHANGEL in pro.cxx
vehlwn
connect(
   sender, &Sender::valueChanged,
   receiver, &Receiver::updateValue
);
так перегрузка есть, когда можно не задавать поинтер владельца слота
источник

v

vehlwn in pro.cxx
ARCHANGEL
так перегрузка есть, когда можно не задавать поинтер владельца слота
У меня она никогда не работала. Наверно с слотами-лямблиями нельзя.
источник

A

ARCHANGEL in pro.cxx
есть апдейт, оно работает, но когда консольный процесс делает Tab для возврата назад (там процент загрузки рисуется), то вот ничего не читается (
источник

v

vehlwn in pro.cxx
vehlwn
Inherits:  QIODevice
Да есть.
bool QIODevice::canReadLine() const

Note that unbuffered devices, which have no way of determining what can be read, always return false.
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Alexander Zaitsev
у кого-нибудь есть опыт выбора форматтера для кода между clang-format vs uncrustify? Чем один другого хуже\лучше?
Еще есть astyle. Я пользовался только cf и походу не смог найти хороший набор настроек, потому что мне не нравится, что он выдает
источник

A

ARCHANGEL in pro.cxx
vehlwn
bool QIODevice::canReadLine() const

Note that unbuffered devices, which have no way of determining what can be read, always return false.
ну это ж проброс через пайп виндовый (консольный аутпут через пайп до графики), так что читает
источник

AZ

Alexander Zaitsev in pro.cxx
Artöm Bakri Al-Sarmini
Еще есть astyle. Я пользовался только cf и походу не смог найти хороший набор настроек, потому что мне не нравится, что он выдает
про astyle знаю. выбор только между clang-format и uncrustify сейчас стоит
источник

v

vehlwn in pro.cxx
ARCHANGEL
ну это ж проброс через пайп виндовый (консольный аутпут через пайп до графики), так что читает
А QProcess::setReadChannel ты сделал?
источник

A

ARCHANGEL in pro.cxx
vehlwn
А QProcess::setReadChannel ты сделал?
говорю же, всё заработало, но вот с прогресс баром из консоли беда:

Downloading... 96 %
Downloading... 97 %
Downloading... 97 %
Downloading... 97 %
Downloading... 98 %
Downloading... 98 %
Downloading... 99 %
Downloading... 99 %
Downloading... 99 %
Downloading... 100 %
источник

A

ARCHANGEL in pro.cxx
а в консольке мы вернулись, перезаписали, и снова поехали
источник

v

vehlwn in pro.cxx
ARCHANGEL
говорю же, всё заработало, но вот с прогресс баром из консоли беда:

Downloading... 96 %
Downloading... 97 %
Downloading... 97 %
Downloading... 97 %
Downloading... 98 %
Downloading... 98 %
Downloading... 99 %
Downloading... 99 %
Downloading... 99 %
Downloading... 100 %
Не понял каким прогрес баром? У купроцессов нет никакого прогресса.
источник

A

ARCHANGEL in pro.cxx
vehlwn
Не понял каким прогрес баром? У купроцессов нет никакого прогресса.
у меня есть консольное приложение, оно там процессит процессы и бороздит просторы ) И вот оно делает долгий процессинг и рисует в консольке проценты.
источник

A

ARCHANGEL in pro.cxx
эти проценты потом переносятся в текст мультилаыновый от кутэ
источник