Russian Qt Forum

Qt => Общие вопросы => Тема начата: niXman от Февраль 09, 2009, 19:23



Название: Освобождение ресурсов по сигналу QProcess::finished();
Отправлено: niXman от Февраль 09, 2009, 19:23
Во время работы программы создаются процессы QProcess. Для освобождения ресурсов создаю вспомогательный класс ProcessHelper.
Код:
class ProcessHelper:public QObject {
public:
   ProcessHelper() {}
   ProcessHelper(QWidget* o, const QString& exec, const QStringList& args):QObject(o) {
      process = new QProcess(this);
      connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(on_finished()));
      process->start(exec, args);
   }
public slots:
   void on_finished() {
      process->terminate();
      delete process;
   }
private:
   QProcess* process;
};
Суть этого объекта в том, чтоб по завершению процесса, он удалялся.

Далее...
Создал объект, который хранит указатели на ProcessHelper для последующего их удаления принудительно.
Гм... Щас дооформлю... Сорри... ???


Название: Re: Освобождение ресурсов по сигналу QProcess::finished();
Отправлено: pastor от Февраль 09, 2009, 19:34
А непроще сделать так?

Код
C++ (Qt)
connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), process, SLOT(deleteLater()));


Название: Re: Освобождение ресурсов по сигналу QProcess::finished();
Отправлено: niXman от Февраль 09, 2009, 20:50
На сколько я понимаю...это не совсем ТО...

Продолжать я думаю нет смысла...
Вопрос: Я в правильном направлении двигаюсь? Есть ли другие пути?

Спасибо!


Название: Re: Освобождение ресурсов по сигналу QProcess::finished();
Отправлено: pastor от Февраль 09, 2009, 22:52
На сколько я понимаю...это не совсем ТО...

А как вы понимаете? Может быть вы неправильно понимаете?


Название: Re: Освобождение ресурсов по сигналу QProcess::finished();
Отправлено: niXman от Февраль 10, 2009, 00:32
Хотя ДА, Вы правы.