Russian Qt Forum

Qt => Общие вопросы => Тема начата: mal от Май 05, 2010, 16:55



Название: simpletextviewer - поднять assistant на передний план
Отправлено: mal от Май 05, 2010, 16:55
Qt-4.6.1+ Windows XP

Сваял запуск асистента по образу и подобию как в указанном примере, и столкнулся со следующим (на примере самого simpletextviewer):
Берем указанный пример examples\help\simpletextviewer\.
Запускаем и раскрываем на все окно. Зовем помощь по F1 - запускается асистент, поднимается на передний план, все ок. Возвращаемся в окно программы и снова жмем F1.
В статусе винды видим, что асистент активизируется, но на передний план не поднимается. Т.е. по нажатию F1 мы остаемся  в окне приложения. Если ручками перейти в асистент, то видно, что он прыгнул на тот "якорь" куда надо.
Собственно вопрос - как поднять приложение  запущенное с помощью QProcess (в нашем конкретном случае assistant.exe) на передний план?


Название: Re: simpletextviewer - поднять assistant на передний план
Отправлено: mal от Май 06, 2010, 10:17
Смотрю ответов немного ).
Пока, чтоб не морочиться как это сделать в винде (findWindow...) и как в линуксе,  сделал тупо: если процесс запущен - убить процесс и создать/стартовать его по новой с нужным якорем.
На текущий момент имею запуск и всплытие асистента с нужной информацией по первому требованию . Что и требовалось
Лучше решения пока не нашел.


Название: Re: simpletextviewer - поднять assistant на передний план
Отправлено: spectre71 от Май 09, 2010, 10:34
Методами QT, Никак!
Единственный вариант - закрывать процесс assistant который был поднят ранее (если нужен только 1 экземпляр) и поднимать новый процесс.

Можно еще встраивать assistant в окно своего приложения. Хотя судя по его кривезне - не безопасно. :)