Информация об изменениях

Сообщение Re[5]: Создать окна в консольном приложении. Как? от 11.11.2021 11:06

Изменено 11.11.2021 11:11 SaZ

Re[5]: Создать окна в консольном приложении. Как?
Здравствуйте, imh0, Вы писали:

I>Здравствуйте, Skorodum, Вы писали:


S>>Здравствуйте, imh0, Вы писали:


I>>>Смотрите, вопрос по теме форума, вопрос не простой, вопрос на самом деле актуальный...

S>>Извини, но у меня для тебя плохие новости.
S>>Это настолько базавая и тривиальная вещь в Qt что непонятно, что тебе непонятно
S>>По существу ответил.
Автор: Skorodum
Дата: 11.11.21


I>Уверен, что вешь трвиальная, но тем не менее... По эвентам это значит я не контролирую процесс выполнения приложения. То есть процесс обработки каких-то внешних по отношению к QT событиям идет лесом. А мне как раз и надо чтобы по какому-то внешнему событию создавались окна и также ассинхронно по отношению к QT они могли закрываться. Тут даже не главное закрывать окна, тут главное чтобы не было потери уравления в результате передачи управления в app.exec... Когда я сам диспечеризирую события QT то я могу также диспечеризировать внешние события.


Ну так а может стоит подробно описать, что такое "внешнее событие"? В кутэ это либо сигнал, либо QEvent. Что именно это в вашем случае — не ясно. Прерывание, сигнал ОС, какой-нибудь boost signals или сигналы из SObjectizer?
Задача решается так: создаётся отдельный поток в котором делается инстанс QApplication. Пишется прокси, которые транслирует ваши события в Qt signals. Что тут может быть сложного если вы владеете основами Qt — непонятно. Очень не хватает конкретики в исходном вопросе.
Re[5]: Создать окна в консольном приложении. Как?
Здравствуйте, imh0, Вы писали:

I>Здравствуйте, Skorodum, Вы писали:


S>>Здравствуйте, imh0, Вы писали:


I>>>Смотрите, вопрос по теме форума, вопрос не простой, вопрос на самом деле актуальный...

S>>Извини, но у меня для тебя плохие новости.
S>>Это настолько базавая и тривиальная вещь в Qt что непонятно, что тебе непонятно
S>>По существу ответил.
Автор: Skorodum
Дата: 11.11.21


I>Уверен, что вешь трвиальная, но тем не менее... По эвентам это значит я не контролирую процесс выполнения приложения. То есть процесс обработки каких-то внешних по отношению к QT событиям идет лесом. А мне как раз и надо чтобы по какому-то внешнему событию создавались окна и также ассинхронно по отношению к QT они могли закрываться. Тут даже не главное закрывать окна, тут главное чтобы не было потери уравления в результате передачи управления в app.exec... Когда я сам диспечеризирую события QT то я могу также диспечеризировать внешние события.


Ну так а может стоит подробно описать, что такое "внешнее событие"? В кутэ это либо сигнал, либо QEvent. Что именно это в вашем случае — не ясно. Прерывание, сигнал ОС, какой-нибудь boost signals или сигналы из SObjectizer, или какие-то самопальные коллбэки?
В любом случае всё сводится к следующему: создаётся отдельный поток в котором делается инстанс QApplication. Пишется прокси, которые транслирует ваши события в emit somesignal. Делаете класс — обработчик в том же потоке в котором ваш QApplication — и там всю работу с окнами. Что тут может быть сложного если вы владеете основами Qt — непонятно. Очень не хватает конкретики в исходном вопросе.