Здравствуйте. Недавно начал изучать QT, из прочитанного в книжках уяснил, что при уничтожении родителя все его потомки автоматически уничтожаются для любого объекта QT. Сам столкнулся вот с такой проблемой.
У меня есть класс Window1, отвечающий за главное (и единственное) окно программы.
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window1 *window1 = new Window1;
window1->show();
return app.exec();
}
Этот класс содержит слот button1Clicked(), обрабатывающий нажатие кнопки button1, в котором запускается firefox.
void Window1::button1Clicked()
{
QString program = "firefox";
proc = new QProcess(this);
proc->start(program);
}
Собственно, firefox запускается. По логике (как я понял объектную модель QT) при уничтожении родителя этого процесса сам процесс тоже должен уничтожиться, никаких деструкторов вручную для этого писать не надо. Но, при закрытии окна Window1, firefox не выключается и продолжает работать. В то же время, если явно вызвать proc-> kill() , firefox завершает свою работу.
Собственно, пример сугубо учебный
Может быть, я что-то неправильно понял, и мне нужно явно прописать убийство процесса в деструкторе класса главного окна Window1? И, может быть, есть возможность переопределить класс QApplication так, чтобы при закрытии приложения уничтожались все процессы, рожденные им?
Ну и если вопрос совсем глупезный и отражает мое полное непонимание предмета, ткните носом, где почитать