Несколько рабочих столов внутри одного экрана

63
4

Мне нужна информация о рабочих столах, созданных пользователем, независимо от того, подключен ли к компьютеру один или несколько экранов.

В настоящее время у меня есть приложение с вкладками внутри, которое можно отсоединить и перенести на другой вручную созданный рабочий стол, пока основное приложение остается на первом (основном) рабочем столе. Можете ли вы предложить, как получить идентификаторы (и другую доступную информацию) рабочих столов, где расположены отдельные вкладки?

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

спросил(а) 2021-01-25T17:29:46+03:00 4 месяца, 4 недели назад
1
Решение
108

Это не настоящие рабочие столы, это "рабочие пространства", они специфичны для рабочей среды. Итак, насколько я вижу, у вас есть два варианта:

    запустите утилиту wmctrl с параметрами через QProcess и получите вывод найти wmctrl источники и взять код оттуда (не пробовал сам, но выглядит как get_property() & list_desktops() содержат требуемый)

В любом случае это не будет выглядеть слишком портативным решением, конечно =)

ответил(а) 2021-01-25T17:29:46+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема