Russian Qt Forum
Ноябрь 26, 2024, 16:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Размещение стороннего окна на форме QT
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Размещение стороннего окна на форме QT (Прочитано 9593 раз)
Limetris
Гость
Размещение стороннего окна на форме QT
«
:
Февраль 21, 2014, 12:34 »
Добрый день.
Требуется разместить окно любого стороннего приложения на форме (или виджете) моего приложения QT.
Handle размещаемого окна известен.
Поиск каких-нибудь механизмов существенных результатов не дал.
У кого есть идеи или решения на этот счет? Также буду благодарен за любой пинок в нужную сторону ))
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Размещение стороннего окна на форме QT
«
Ответ #1 :
Февраль 21, 2014, 12:53 »
Ну "просто так" ОС не позволит иметь окно одного приложения внутри другого. Сначала нужно искать как это делается в OC (напр ActiveX), а потом смотреть чему это соответствует в Qt.
А вообще напрашиваетесь на ответы типа "никак", "хочется - перехочется" и.т.п.
Записан
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #2 :
Февраль 21, 2014, 13:15 »
Цитата: Igors от Февраль 21, 2014, 12:53
Ну "просто так" ОС не позволит иметь окно одного приложения внутри другого. Сначала нужно искать как это делается в OC (напр ActiveX), а потом смотреть чему это соответствует в Qt.
А вообще напрашиваетесь на ответы типа "никак", "хочется - перехочется" и.т.п.
В Windows на уровне в WinAPI это делается не так трудно, на С++ Builder XE проверял, но меня интересует именно QT.
Но за мысль спасибо, сейчас порою и в этом направлении.
P.S. по поводу "никак" и "хочется - перехочется" к сожалению не понял чем напрашивался ))
Я точно знаю что это возможно, главное желание. А ответ "никак" покажет, что человеку просто не было необходимости это делать.
Записан
Bepec
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #3 :
Февраль 21, 2014, 13:22 »
Или неоправданно сложно сделать
Я бы придерживался мнения - просто поместить окно внутри своего окна и "держать" его там. Пользователю в принципе без разницы, окно в окне или окно на окне, главное поведение.
Записан
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #4 :
Февраль 21, 2014, 13:27 »
Цитата: Bepec от Февраль 21, 2014, 13:22
Или неоправданно сложно сделать
Я бы придерживался мнения - просто поместить окно внутри своего окна и "держать" его там. Пользователю в принципе без разницы, окно в окне или окно на окне, главное поведение.
Сложно, но для меня будет оправдано приобретенным опытом и возможно тем, что это еще кому-то поможет
Окно на окне в принципе тоже вариант, но не хотелось бы до него доходить
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Размещение стороннего окна на форме QT
«
Ответ #5 :
Февраль 21, 2014, 13:41 »
Всё зависит от того что и куда будешь встраивать.
Если встраиваемое окно создано чужим сторонним приложением и имеет input focus и окно твое тоже имеет input focus, то можешь сразу похоронить эту затею ибо совместить 2 изолированных input managers не получится
Записан
Qt 5.11/4.8.7 (X11/Win)
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #6 :
Февраль 21, 2014, 13:46 »
Цитата: GreatSnake от Февраль 21, 2014, 13:41
Всё зависит от того что и куда будешь встраивать.
Если встраиваемое окно создано чужим сторонним приложением и имеет input focus и окно твое тоже имеет input focus, то можешь сразу похоронить эту затею ибо совместить 2 изолированных input managers не получится
input focus - это я как понимаю, свойство окна позволяющее принимать фокус на себя?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Размещение стороннего окна на форме QT
«
Ответ #7 :
Февраль 21, 2014, 13:51 »
Цитата: Limetris от Февраль 21, 2014, 13:46
input focus - это я как понимаю, свойство окна позволяющее принимать фокус на себя?
Я имел в виду клавиатурный фокус.
Ведь иметь 2 одновременно мигающих курсора навряд ли комуто захочется)
Записан
Qt 5.11/4.8.7 (X11/Win)
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #8 :
Февраль 21, 2014, 14:02 »
Цитата: GreatSnake от Февраль 21, 2014, 13:51
Цитата: Limetris от Февраль 21, 2014, 13:46
input focus - это я как понимаю, свойство окна позволяющее принимать фокус на себя?
Я имел в виду клавиатурный фокус.
Ведь иметь 2 одновременно мигающих курсора навряд ли комуто захочется)
Аа, с этим проблем нет, фокус может принадлежать только одному элементу в системе, и переходя на одно окно, оно автоматически пропадает на другом.
И тут не будет разницы окно в окне или два окна по отдельности.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Размещение стороннего окна на форме QT
«
Ответ #9 :
Февраль 21, 2014, 14:05 »
Цитата: Limetris от Февраль 21, 2014, 14:02
Аа, с этим проблем нет, фокус может принадлежать только одному элементу в системе, и переходя на одно окно, оно автоматически пропадает на другом.
И тут не будет разницы окно в окне или два окна по отдельности.
Ню-ню.
Я же не ради трёпа заострил вопрос на этом.
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Размещение стороннего окна на форме QT
«
Ответ #10 :
Февраль 21, 2014, 14:13 »
Цитата: Limetris от Февраль 21, 2014, 13:15
В Windows на уровне в WinAPI это делается не так трудно, на С++ Builder XE проверял,
Так и делайте на том же уровне WinAPI - но на кросс-платформенность это не претендует
Цитата: Limetris от Февраль 21, 2014, 13:15
P.S. по поводу "никак" и "хочется - перехочется" к сожалению не понял чем напрашивался ))
Я точно знаю что это возможно, главное желание. А ответ "никак" покажет, что человеку просто не было необходимости это делать.
Такая необходимость "себе дороже". Ясно что даже в случае успеха такое окно станет источником многих забот. С др стороны Вы разжигаете/поощряете аппетит пользователя/заказчика - ведь Вы сказали "можно" (а часто хочется и прихвастнуть типа "элементарно"
). Ну так если можно - тогда давайте вводить там данные, получать результаты и.т.д. - иначе что толку с "показа окна"?, И соскочить уже будет не так просто, ведь Вы уже пообещали... Поэтому немедленно упереться рогом типа "низзя!" = лучшее решение
Записан
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #11 :
Февраль 21, 2014, 14:14 »
Цитата: GreatSnake от Февраль 21, 2014, 14:05
Ню-ню.
Я же не ради трёпа заострил вопрос на этом.
Ну возможно я чего-то недопонимаю, но при захвате чужих окон, например, из Builder-а я таких проблем не замечал.
Четко был один фокус и переключался как следует.
Одновременно в двух полях ввести что-то нельзя было.
Записан
Bepec
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #12 :
Февраль 21, 2014, 14:16 »
Не замечали != нет.
Дерзайте, пробуйте, отписывайтесь. Мб найдете решение. а мб найдете грабли и расскажите своим последователям.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Размещение стороннего окна на форме QT
«
Ответ #13 :
Февраль 21, 2014, 14:17 »
Цитата: Limetris от Февраль 21, 2014, 14:14
Одновременно в двух полях ввести что-то нельзя было.
Одновременно, конечно не получится.
Но проблем будет куча. Это я гарантирую.
Записан
Qt 5.11/4.8.7 (X11/Win)
Limetris
Гость
Re: Размещение стороннего окна на форме QT
«
Ответ #14 :
Февраль 21, 2014, 14:26 »
Цитата: Igors от Февраль 21, 2014, 14:13
Так и делайте на том же уровне WinAPI - но на кросс-платформенность это не претендует
Поэтому я и здесь, надеялся что в QT существует какой-либо свой механизм.
Цитата: Limetris от Февраль 21, 2014, 13:15
Такая необходимость "себе дороже". Ясно что даже в случае успеха такое окно станет источником многих забот. С др стороны Вы разжигаете/поощряете аппетит пользователя/заказчика - ведь Вы сказали "можно" (а часто хочется и прихвастнуть типа "элементарно"
). Ну так если можно - тогда давайте вводить там данные, получать результаты и.т.д. - иначе что толку с "показа окна"?, И соскочить уже будет не так просто, ведь Вы уже пообещали... Поэтому немедленно упереться рогом типа "низзя!" = лучшее решение
По поводу заказчика, согласен что его надо держать на нужном месте и в меру пресекать полет фантазии ))
Но к сожалению, такая необходимость возникла по моей инициативе, дабы не ломать половину GUI системы чтобы перенести на QT.
Хотя уже задумываюсь, что лучше сейчас это пересмотреть, чем потом рожать ёжиков ))
Как говориться, инициатива **** инициатора
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...