If you are using the QMdiArea, you could listen to the subWindowsActivated signal and reconnect your signals and slots there.
connect(QMdiArea, SIGNAL(subWindowsActivated(QMdiSubWindow*), this, SLOT(subWindowChanged(QMdiSubWindow*))
void MainWindow::subWindowChanged(QMdiSubWindow* newSubWindow) {
// Update the signals to point to the new subwindow
}