Доброго времени суток.
Проблема заключается в следующем:
Есть довольно длинный процесс считывания данных с контроллера по протоколу Modbus.
Выглядит это следующим образом: пользователь открывает окно, в котором отображаются данные с контроллера (окно QDialog, помещается в QMdiSubWindow). Далее, открывается окно индикации процесса чтения данных с ПЛК (просто QDialog, который содержит QLabel и QProgressBar, создано в QtDesigner). Как только данные считаны, это окошко закрывается и данные отображаются в "старшем" окне. Однако, в окне не отображаются ни QLabel, ни QProgressBar. Просто пустое окно.
Однако, если открывать окно не методом show(), а exec(), то всё нормально работает. Но этот вариант не подходит, т.к. процесс чтения блокируется до закрытия окна

void QKM8600Dialog::setDevice(QDevice *kmDevice)
{
device = kmDevice;
QLoaderDialog * loader = new QLoaderDialog(this);
loader->setModal(true);
loader->show();
// далее чтение данных по протоколу Modbus
loader->close();
delete loader;
}
Вот как окно выглядит

А вот так должно выглядеть

Буду признателен, если кто-нибудь сможет подсказать в какую сторону хотя бы грести
