Russian Qt Forum

Qt => Общие вопросы => Тема начата: mokynis от Март 13, 2014, 16:20



Название: несколько QMessageBox при чтении UDP-сообщений
Отправлено: mokynis от Март 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'ом. Почему это происходит? Может можно как-то по-другому получать несколько сообщений?


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: Bepec от Март 13, 2014, 18:27
Я извиняюсь, но это хреновый ход - выводить информация мессадж боксами. :)

Как исправить - не делать так.


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: mokynis от Март 14, 2014, 09:46
дело в том, что "принимающий" сообщения человек будет работать в других программах, но при приходе очередного сообщения должен проделать некоторые действия в соответствии с пришедшим сообщением. При этом на мониторе наверняка будет открыта куча других окон, да еще и самого человека может часа 2 не быть за компьютером, и по приходе он просто может забыть просмотреть сообщения (если я их выведу в QTextEdit какой-нибудь формы). А отреагировать на сообщения надо максимально оперативно.


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: OKTA от Март 14, 2014, 10:08
Не поверишь, но не только QMessageBox может вылазить на передний план  ;D


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: Bepec от Март 14, 2014, 10:29
Окно на весь экран, выше всех, мигание краями, блокировка нажатий клавиатуры и мышки, писк сисдинамиком, рёв из колонок, электроразряд в Н-ное место человеку решат эту проблему.


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: kambala от Март 14, 2014, 14:27
еще можно мигать иконкой в таскбаре


Название: Re: несколько QMessageBox при чтении UDP-сообщений
Отправлено: mokynis от Март 14, 2014, 15:56
спасибо! понял теперь в каком направлении думать. Очень понравилась идея про разряд в 5-ю точку  :)