Как отмечает Leiaz, вы можете использовать флаг windowsFlags при создании виджета. Это будет выглядеть так:
void mainWindow::openSettings()
{
config = new SWindow(this, Qt::window);
config->show();
}
Чтобы переопределить closeEvent:
Заголовок:
protected:
virtual void closeEvent ( QCloseEvent * event )
касты:
void sWindow::closeEvent(QCloseEvent *event)
{
this->parentWidget()->SomeFunction();
qWidget::closeEvent(event);
}
Однако, вероятно, лучше использовать сигнал / слоты для вашего случая здесь. Так как вы сказали, что хотите вызвать метод пролонгации родителя при нажатии какой-либо кнопки в sWindow, вам нужно испускать сигнал при каждом нажатии кнопки и соединять этот сигнал в родительском элементе с гнездом обновления родителя.
void sWindow::sWindow()
{
...
connect(ui.button, SIGNAL(clicked()), this, SLOT(btnClicked()));
}
void sWindow::btnClicked()
{
// whatever else the button is supposed to do
emit buttonClicked();
}
и в вашем родительском классе
void mainWindow::openSettings()
{
config = new SWindow(this, Qt::window);
connect(config, SIGNAL(buttonClicked()), this, SLOT(refresh()));
config->show();
}