Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для Effex
17 / 13 / 4
Регистрация: 14.12.2021
Сообщений: 30
PyQt6

Внедрение сторонних окон в интерфейс приложения на PyQt

18.01.2023, 08:40. Показов 1244. Ответов 9

Студворк — интернет-сервис помощи студентам
Доброго времени суток. У меня есть задача разработать интерфейс, я решил выбрать PyQt в качестве инструмента для этой цели. Это что-то наподобие оконного менеджера. Я изучал этот вопрос и нашел множество оконных менеджеров, но это немного не то, что именно мне нужно. Там суть заключается в том, что у нас есть возможность манипуляции расположением и размерами окон и тд. Но в тоже время все окна открыты отдельно друг от друга. Моя же цель, если можно так выразиться - "объединить" все эти окна в одном общем окне, в котором будут определенные общие настройки. В PyQt есть замечательное средство "QDockWidget", которое позволяет создавать окна в виде областей, которые можно перемещать в пределах основного окна и прикреплять к разным его сторонам и даже вытягивать его из основного. Но загвоздка в том, что я не уверен, что внутри них можно отображать отдельные самостоятельные окна других приложений и написанные на любом другом языке. То есть мне не нужно связывать функционал самих приложений, а необходимо просто скомпоновать окна. Скажите, есть ли какое либо простое и лаконичное решение данной задачи, ну или не простое?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2023, 08:40
Ответы с готовыми решениями:

Запуск окон PyQT
У меня есть два кода с окнами, один хочу импортировать как модуль, чтоб при нажатие кнопки открывалось это окно

Ошибка при связке окон
import sys from PyQt5 import uic from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QWidget class...

Изменение свойств сторонних окон
Здравствуйте, подскажите как, зная хендл какого-небудь стороннего окна, изменять его такие свойства по типу в VB Form.Top, Form.Left или...

9
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,656
18.01.2023, 20:39
"Отобрать" окно у другого приложения- это довольно сложная задача, тем более на Python (Не утверждаю, что невозможная ) Это надо перехватывать все так называемые сообщения, адресованные этому окну, от операционной системы, контролировать их, возможно чтото в них подменивать. QDockWidget это немного из другой области, там все виджеты "родные".
0
 Аватар для Effex
17 / 13 / 4
Регистрация: 14.12.2021
Сообщений: 30
19.01.2023, 06:13  [ТС]
Эх, печально слышать.. А что если ограничить универсальность и сказать, что программы, которые мы будем интегрировать будут с графическим интерфейсом, который написан на С++ Qt? Тут тоже не все так просто? Нужен ли для этой цели исходный код программы С++?
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
19.01.2023, 15:14
Qt работает в рамках одного приложения. я бы сказал вам менеджер окон нужен типа тайловых, каких - это от ОС зависит
https://en.wikipedia.org/wiki/... ow_manager
https://www.reddit.com/r/windo... r_windows/

Добавлено через 23 минуты
Цитата Сообщение от Effex Посмотреть сообщение
А что если ограничить универсальность и сказать, что программы, которые мы будем интегрировать будут с графическим интерфейсом, который написан на С++ Qt? Тут тоже не все так просто? Нужен ли для этой цели исходный код программы С++?
MdiArea
https://evileg.com/ru/post/245/
1
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,656
19.01.2023, 21:23
Цитата Сообщение от Effex Посмотреть сообщение
А что если ограничить универсальность и сказать, что программы, которые мы будем интегрировать будут с графическим интерфейсом, который написан на С++ Qt?
Впринципе не особо важно на чём они написаны, ну разве что немного ресурсов ОС сэкономят (типа общие библиотеки используют). Тут главное, что они "чужие" друг для друга.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
19.01.2023, 22:47
Лучший ответ Сообщение было отмечено Effex как решение

Решение

kapbepucm, есть пример,
QProcess запускает сторонний exe и получает идентификатор процесса
winApi получает дескриптор окна по идентификатору процесса
QWindow :: fromWinId (WId id) создает окно
https://russianblogs.com/article/71981280972/
но я не думал в эту сторону

Добавлено через 40 минут
https://www.pythonguis.com/tut... -programs/
ну вот этот пример работоспособен
2
 Аватар для Effex
17 / 13 / 4
Регистрация: 14.12.2021
Сообщений: 30
20.01.2023, 10:53  [ТС]
vic5710, Спасибо за информацию, буду ковыряться)
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
20.01.2023, 19:25
Effex, процессов вы можете запустить несколько, но вот как их свести в мозаику -
не вижу способа
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,656
20.01.2023, 19:33
получив идентификатор окна, мы можем окном управлять
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
21.01.2023, 00:10
КМК если для WIN pywinauto может помочь
https://habr.com/ru/post/323962/
в Linux этит тайловых манагеров полно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2023, 00:10
Помогаю со студенческими работами здесь

Активность окон сторонних программ
Как при открытых 2-х - 3-х программ (с одинаковым названием) назначить кнопке делать активным то или иное окно?

Получение координат окон сторонних приложений
Как получить массив rectangle всех окон, которые находятся на экране монитора? Или хотя бы где почитать о работе со сторонними окнами?

Автозапуск сторонних программ, консольных окон и т.д
Вот ссылка на проблему, детально: https://www.cyberforum.ru/windows/thread1754200.html Логи же в этой теме (все файлы *.log, которые...

Python + PyQt Многоязычный интерфейс программы
Привет Уважаемые форумчане ! Назрела необходимость добавить в программу возможность переключения языка интерфейса. Прошу Вашей помощи...

Проблеммы при скрытом запуске дочерних окон сторонних приложений и передаче в них данных
Посоветуйте пожалуйста, как решить следующую проблемму: из основой программы стартую стороннюю программу: Как обычно, в классе: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru