Russian Qt Forum
Апрель 19, 2024, 12:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не отображается интерфейс диалога QDialog  (Прочитано 3878 раз)
SunnyBear
Гость
« : Сентябрь 22, 2015, 00:35 »

Доброго времени суток.

Проблема заключается в следующем:
Есть довольно длинный процесс считывания данных с контроллера по протоколу 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;
}

Вот как окно выглядит

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


Буду признателен, если кто-нибудь сможет подсказать в какую сторону хотя бы грести  Улыбающийся
« Последнее редактирование: Сентябрь 22, 2015, 00:37 от SunnyBear » Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Сентябрь 22, 2015, 05:43 »

Вы не обрабатываете события при чтении данных из контроллера.
Вызывайте метод  QApplication::processEvents (или воспользуйтесь аналогичным методом из QEventLoop) в процессе чтения данных.
Записан
BokyArobby
Гость
« Ответ #2 : Сентябрь 22, 2015, 11:27 »

fiuymkvrqk
 
http://vsyo-osvarke.beep.com/apps/contactform/
http://svarka-apparat.beep.com/
http://svarka-apparat.beep.com/index.htm/
http://mega-svarka.beep.com/
http://mega-svarka.beep.com/index.htm/
http://remonto-svarka.beep.com/
http://remonto-svarka.beep.com/index.htm/
http://svarka-blog.beep.com/
http://svarka-blog.beep.com/index.htm/
http://pro-svarky.beep.com/
http://pro-svarky.beep.com/index.htm/
http://instrbest.soup.io/
http://instrbest.soup.io/post/621976181/
http://elektroprof.soup.io/
http://elektroprof.soup.io/post/621985362/
https://electrogarantiya.wordpress.com/
https://electrogarantiya.wordpress.com/2015/09/18/%D0%B3%D0%B0%D1%80%D0%B0%D0%BD%D1%82%D0%B8%D1%8F-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B8%D0%BD%D1%81/
https://electrogarage.wordpress.com/
https://electrogarage.wordpress.com/2015/09/18/%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%8D%D0%BA%D1%81%D0%BF%D0%BB%D1%83%D0%B0%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%B8%D0%BD%D1%81%D1%82/
https://electroprofblog.wordpress.com/
https://electroprofblog.wordpress.com/2015/09/18/%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5/
https://benzopilablog.wordpress.com/
https://benzopilablog.wordpress.com/2015/09/14/%D0%B1%D0%B5%D0%BD%D0%B7%D0%BE%D0%BF%D0%B8%D0%BB%D0%B0-%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C/
https://benzopilablog.wordpress.com/2015/09/14/%D0%B1%D0%B5%D0%BD%D0%B7%D0%BE%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%/
http://benzogenerator-moskow.weebly.com/
http://instr-blog.soup.io/
http://instr-blog.soup.io/post/618108776/
http://instr-blog.soup.io/post/618105561/
http://instr-blog.soup.io/post/618110788/
http://benzogeneretor.beep.com/
 
 
tvntvzobam
     
http://www.stockcity2000.at/forum/viewtopic.php?f=20&t=30610
http://metin2crown.info/Forum/index.php?topic=560655.new#new
http://smf.demo.sur.ly/index.php?topic=53.new#new
http://www.nzclouds.com/bbs/forum.php?mod=viewthread&tid=40069&extra=
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Сентябрь 23, 2015, 14:33 »

еще смотрите в сторону QProgressDialog. Он как раз для таких задач!
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Сентябрь 23, 2015, 15:04 »

+1 for QProgressDialog
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 22.