Russian Qt Forum
Ноябрь 01, 2024, 05:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить список окон верхнего уровня во всей системе?  (Прочитано 3369 раз)
Ground
Гость
« : Ноябрь 21, 2012, 14:13 »

Собственно, сабж. Хотелось бы средствами Qt, т.к. АПИ-вариант не вызывает проблем.
QApplication::topLevelWidgets() не подходит, т.к. возвращает только окна верхнего уровня для текущего приложения.
Записан
Bepec
Гость
« Ответ #1 : Ноябрь 21, 2012, 14:28 »

Вам не кажется глупым этот вопрос?

Апи вариант для каждой системы разный. Даже не так - для каждого оконного менеджера разный.

Если для вас не составляет проблем получить все окна верхнего уровня - напишите класс, который будет это делать в зависимости от оконного менеджера.

PS пока что я о таком не слышал.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #2 : Ноябрь 21, 2012, 14:36 »

Для Win32 - EnumWindows, для X11 - используй NETWM и _NET_CLIENT_LIST
Записан
Ground
Гость
« Ответ #3 : Ноябрь 21, 2012, 15:01 »

Вам не кажется глупым этот вопрос?

Совсем нет. Скажем так, Qt - кроссплатформенный фреймворк, поэтому он и должен содержать обертку над общими функциями системы. В исходниках достаточно много мест, где такие вот несостыковки решаются с помощью макросов.

Для Win32 - EnumWindows, для X11 - используй NETWM и _NET_CLIENT_LIST
Благодарю за информацию.

Ну если нет в Qt нет таких функций, можно считать вопрос закрытым. Спасибо за помощь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.064 секунд. Запросов: 23.