Название: Убийство процесса-потомка Отправлено: justahf от Март 15, 2014, 12:28 Здравствуйте. Недавно начал изучать QT, из прочитанного в книжках уяснил, что при уничтожении родителя все его потомки автоматически уничтожаются для любого объекта QT. Сам столкнулся вот с такой проблемой.
У меня есть класс Window1, отвечающий за главное (и единственное) окно программы. Код: int main(int argc, char *argv[]) Этот класс содержит слот button1Clicked(), обрабатывающий нажатие кнопки button1, в котором запускается firefox. Код: void Window1::button1Clicked() Собственно, firefox запускается. По логике (как я понял объектную модель QT) при уничтожении родителя этого процесса сам процесс тоже должен уничтожиться, никаких деструкторов вручную для этого писать не надо. Но, при закрытии окна Window1, firefox не выключается и продолжает работать. В то же время, если явно вызвать proc-> kill() , firefox завершает свою работу. Собственно, пример сугубо учебный :) Может быть, я что-то неправильно понял, и мне нужно явно прописать убийство процесса в деструкторе класса главного окна Window1? И, может быть, есть возможность переопределить класс QApplication так, чтобы при закрытии приложения уничтожались все процессы, рожденные им? Ну и если вопрос совсем глупезный и отражает мое полное непонимание предмета, ткните носом, где почитать :) Название: Re: Убийство процесса-потомка Отправлено: Old от Март 15, 2014, 12:33 А если так?
Код
или так: Код
Деструктор Window1 у вас не вызывается, поэтому и объект процесса не разрушается. Название: Re: Убийство процесса-потомка Отправлено: justahf от Март 15, 2014, 12:41 Деструктор Window1 у вас не вызывается, поэтому и объект процесса не разрушается. Воистину. Вы сделали меня грустить, очень сильно. Спасибо, пошел дальше книжки читать :) |