В программах из вне вызывается подпрограмма stickmetka(QString tdrive); из example.cpp .
В stickmetka(QString tdrive) создаётся процесс proc17 = new QProcess( paren );
и proc17->connect( proc17, SIGNAL(readyReadStandardOutput()), paren, SLOT(readFrom2()) );
вопрос : 1. нужно ли при выходе из stickmetka(QString tdrive) делать
proc17->disconnect( proc17, SIGNAL(readyReadStandardOutput()), paren, SLOT(readFrom2()) );
или не обязательно - как лучше?
2.как правильнее создавать процесс proc17 = new QProcess( paren ); внутри подпрограммы stickmetka(QString tdrive) :
C++ (Qt)
stickmetka(QString tdrive)
{...
QProcess *proc17 = new QProcess( paren );
...}
или сделать в начале example.cpp :
C++ (Qt)
#include "metkatoma.h"
#include "qprocess.h"
#include "QtCore"
QProcess *proc17 = new QProcess( paren );
stickmetka(QString tdrive)
{...
proc17->connect( proc17, SIGNAL(readyReadStandardOutput()), paren, SLOT(readFrom2()) );
...
proc17->disconnect( proc17, SIGNAL(readyReadStandardOutput()), paren, SLOT(readFrom2()) );// вопрос 2. обязателен ли данный оператор? (stickmetka(QString tdrive) используется многократно из других срр)
...}
и почему ?
Рассуждения по вопросу 2: в документации по QT написано , что "На практике прямой вызов disconnect используется редко, так как Qt автоматически удаляет все соединения при удалении объектов." - то есть дисконект не обязателен? - тогда нужно ли уничтожать процесс по завершению и как , таким образом : finished(); ?