Russian Qt Forum
Ноябрь 25, 2024, 18:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Освобождение ресурсов по сигналу QProcess::finished();  (Прочитано 4952 раз)
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 для последующего их удаления принудительно.
Гм... Щас дооформлю... Сорри... Непонимающий
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Февраль 09, 2009, 19:34 »

А непроще сделать так?

Код
C++ (Qt)
connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), process, SLOT(deleteLater()));
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
niXman
Гость
« Ответ #2 : Февраль 09, 2009, 20:50 »

На сколько я понимаю...это не совсем ТО...

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

Спасибо!
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраль 09, 2009, 22:52 »

На сколько я понимаю...это не совсем ТО...

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

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
niXman
Гость
« Ответ #4 : Февраль 10, 2009, 00:32 »

Хотя ДА, Вы правы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.076 секунд. Запросов: 23.