Во-первых, это и было за пределами цикла.
if( !isExists )
subWindow = mdiArea->addSubWindow( widget );
subWindow->showMaximized();
Во-вторых, не надо делать вот это.
QMdiSubWindow *subWindow = new QMdiSubWindow;
Нужно только это
QMdiSubWindow *subWindow;
А вот это
import *widget = new import;
Нужно делать по какому-то одному тебе известному условию, а не создавать каждый раз
при попадании в слот.
Я же тебе написал - ВЫЯСНИ создан он или нет. Прежде чем снова создавать.
mdi только показывает. Создавать или нет - сам решай.