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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: несколько QMessageBox при чтении UDP-сообщений  (Прочитано 4100 раз)
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« : Март 13, 2014, 16:20 »

получаю от клиента сообщения
Код:
void mainForm::slotPendingData()
{
    while(udpSocket->hasPendingDatagrams())
    {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        udpSocket->readDatagram(datagram.data(),datagram.size());
        QMessageBox::information(0,tr("Message"),tr("%1").arg(datagram.data()),QMessageBox::Ok);
    }
}
сообщения могут идти одно за другим. В Linux-без проблем, закрываю один MessageBox, тут же открывается другой со следующим сообщением. В Windows (XP) виснет клиентская программа, приходится убивать ее TaskManager'ом. Почему это происходит? Может можно как-то по-другому получать несколько сообщений?
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
Bepec
Гость
« Ответ #1 : Март 13, 2014, 18:27 »

Я извиняюсь, но это хреновый ход - выводить информация мессадж боксами. Улыбающийся

Как исправить - не делать так.
Записан
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #2 : Март 14, 2014, 09:46 »

дело в том, что "принимающий" сообщения человек будет работать в других программах, но при приходе очередного сообщения должен проделать некоторые действия в соответствии с пришедшим сообщением. При этом на мониторе наверняка будет открыта куча других окон, да еще и самого человека может часа 2 не быть за компьютером, и по приходе он просто может забыть просмотреть сообщения (если я их выведу в QTextEdit какой-нибудь формы). А отреагировать на сообщения надо максимально оперативно.
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
OKTA
Гость
« Ответ #3 : Март 14, 2014, 10:08 »

Не поверишь, но не только QMessageBox может вылазить на передний план  Смеющийся
Записан
Bepec
Гость
« Ответ #4 : Март 14, 2014, 10:29 »

Окно на весь экран, выше всех, мигание краями, блокировка нажатий клавиатуры и мышки, писк сисдинамиком, рёв из колонок, электроразряд в Н-ное место человеку решат эту проблему.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Март 14, 2014, 14:27 »

еще можно мигать иконкой в таскбаре
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #6 : Март 14, 2014, 15:56 »

спасибо! понял теперь в каком направлении думать. Очень понравилась идея про разряд в 5-ю точку  Улыбающийся
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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