Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: o_leg от Август 26, 2009, 10:21



Название: Сокет и Модальный диалог
Отправлено: o_leg от Август 26, 2009, 10:21
Приветствую.
Не знаю, в тот ли раздел пишу, но сорри, если что...
Имеется клиент-серверное приложение. По приему данных нужно выдать модальный диалог.
То есть в сокете в слоте readyRead я создаю диалог с exec(). Так вот после создания диалога сокет блокируется от получения данных, пока я не закрою диалог. Это не есть хорошо.
При программировании под Windows я просто в при приеме слал PostMessage в служебное окно, там это сообщение ловилось и создавался модальный диалог. При этом работа сокета не блокировалась.
Как асинхронно толкнуть что-то чтобы из socket::readyRead создать модальный диалог и не заблокировать работу по приему данных?
Имеет смысл воспользоваться timer?
Спасибо.


Название: Re: Сокет и Модальный диалог
Отправлено: kwisp от Август 26, 2009, 10:47
Цитировать
nt QDialog::exec ()   [slot]

Shows the dialog as a modal dialog, blocking until the user closes it. The function returns a DialogCode result.

If the dialog is application modal, users cannot interact with any other window in the same application until they close the dialog. If the dialog is window modal, only interaction with the parent window is blocked while the dialog is open. By default, the dialog is application modal.

See also open(), show(), result(), and setWindowModality().
попробуй просто show()
предварительно сделав диалог модальным.


Название: Re: Сокет и Модальный диалог
Отправлено: o_leg от Август 26, 2009, 11:30
Ага, спасибо. Работает. Про setModal я и забыл...


Название: Re: Сокет и Модальный диалог
Отправлено: BlackTass от Август 26, 2009, 15:20
а еще лучше передать сигнал в гуевый поток, чтобы он создал модальное окно