Коллеги, день добрый. Кто знает как правильно передать фокус из

одного приложения в другое? Оба написаны на Qt. У каждого есть свои окна. Нужно по нажатию кнопки в одном приложении, поднять окно в другом. Казалось бы, задача тривиальная. Но нельзя просто сделать raise или show, под Windows в этом случае будет проблемы с передачей фокуса и т.д. Нужно как то передать фокус принимающему приложению и только после этого поднять нужное окно. Как это сделать нативными средствами Windows понятно, но это может поломать работу с фокусом внутри Qt

10 ответов

25 просмотров

Возможно не совсем то, но тут есть про поднятия окна если приложение уже работает. https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication

Anton-Mihaylov Автор вопроса
qualifier
Возможно не совсем то, но тут есть про поднятия ок...

спасибо, смотрел. При определенных кейсах это не отработает ))) Пробовал такой подход. Причем судя по всему только на винде

Anton Mihaylov
спасибо, смотрел. При определенных кейсах это не о...

Вот кстати подводный камень виндовса переднего плана https://github.com/itay-grudev/SingleApplication/blob/master/Windows.md

Средствами лишь Qt наверно нельзя. Ну и есть противоречие: что значит "Передать фокус.... поднть окно в другом ...передать фокус ... и только после этого поднять нужное окно" Что это значит ? Если ты передашь фокус, фокус будет в том окне , куда передал. Если ты "поднимаешь другое окно" - фокус соотв. перейдёт уже туда.

Можно через сокет/dbus/... смотря какая ОС передать второму приложению "команду"

Anton-Mihaylov Автор вопроса

мы так и делаем, передаем команду по IPC. На принимающей стороне делаем show, raise. Но дело в том, что на винде так делать нельзя

С помощью QLocalSocket поднимать сервер/клиент на каждом из экземпляров приложений и обмениваться командами между ними.

Anton Mihaylov
мы так и делаем, передаем команду по IPC. На прини...

В чем проблема передать winId назад и активировать окно из первого инстанса?

Anton-Mihaylov Автор вопроса
𝙼𝚛. 𝙲𝚘𝚘𝚠𝚙𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
В чем проблема передать winId назад и активировать...

Скорее всего так и будем делать. И юзать нативные ф-ции. Была надежда что у Qt уже что то есть под это

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
1
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Карта сайта