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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Dual View + QT4  (Прочитано 5897 раз)
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« : Ноябрь 29, 2007, 18:35 »

Есть комп с двумя мониторами,
нужно запустить две программы написаные на QT
первая программа должна быть showFullScreen на первом мониторе
а другая showFullScreen на втором.
Как это сделать ?
Записан
ритт
Гость
« Ответ #1 : Ноябрь 29, 2007, 18:53 »

ассистант, ёпт!!!
QDesktopWidget, QScreen
берёшь сингаппликейшен, узнаёшь на каком десктопе уже висит экземпляр программы и вешаешься на другой десктоп
Записан
Steven_Orko
Гость
« Ответ #2 : Ноябрь 29, 2007, 20:08 »

Есть комп с двумя мониторами,
нужно запустить две программы написаные на QT
первая программа должна быть showFullScreen на первом мониторе
а другая showFullScreen на втором.
Как это сделать ?

Во-первых, подход уже не верный!!!
Размещением окон занимается не приложение, чьи это окна, а оконный менеджер.
Соответственно, без "сотрудничества" с ним ты ничего сделать не сможешь.
А в общем случае, вообще никак.
Таким образом, изучай поддерживаемые тобой как разработчиком оконные менеджеры.
Далее, в соответствие с паттерном "Стратегия", реализуешь размещение окон.
Кроссплатформенно даже showFullScreen() не всегда правильно работает.
Во-вторых, ты привязываешь свой продукт к аппаратной конфигурации, где только два монитора.
Если это не важно, то второе замечание снимается. ))))

Таким образом, задачу необходимо уточнять.

OFF
to xep:
К Вам лично, и к остальным "умельцам" русского языка. Если Вы не можете цензурно выражаться, лучше вообще не поститься. Не надо превращать форум в базар. Просьба модераторам ввести цезуру.
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #3 : Ноябрь 29, 2007, 20:30 »

Во-первых, подход уже не верный!!!
Размещением окон занимается не приложение, чьи это окна, а оконный менеджер.
Соответственно, без "сотрудничества" с ним ты ничего сделать не сможешь.
А в общем случае, вообще никак.
Таким образом, изучай поддерживаемые тобой как разработчиком оконные менеджеры.
Далее, в соответствие с паттерном "Стратегия", реализуешь размещение окон.
Кроссплатформенно даже showFullScreen() не всегда правильно работает.
Во-вторых, ты привязываешь свой продукт к аппаратной конфигурации, где только два монитора.
Если это не важно, то второе замечание снимается. ))))

У меня вопрос. Работа с оконным менеджером это относится только к виртуальным десктопам ?
или отдельный монытор обрабатывается как виртуальный десктоп ?
нужно это настроить на один комп не кроссплатформенно.

ассистант, ёпт!!!
QDesktopWidget, QScreen
берёшь сингаппликейшен, узнаёшь на каком десктопе уже висит экземпляр программы и вешаешься на другой десктоп

Спасибо это попробую.
Записан
Steven_Orko
Гость
« Ответ #4 : Ноябрь 29, 2007, 22:35 »

У меня вопрос. Работа с оконным менеджером это относится только к виртуальным десктопам ?
или отдельный монытор обрабатывается как виртуальный десктоп ?
нужно это настроить на один комп не кроссплатформенно.

Хм, что ты имеешь ввиду под виртуальным десктопом? Если терминальный интерфейс, то..
В общем, если правильно понял, то вот.
В системе с запущенной графикой, будь то Windows, *nix, Mac, всегда запущен менеджер окон. Он только один.
Где бы ты не получал отображение, за обрамление окна и управление им отвечает WM (Window Manager).
Чтобы поместить окно на какой-либо экран( монитор = screen), тебе надо сказать оконному менеджеру, что ты этого хочешь.
Могу подсказать только по Линукс. Тут можно через DCOP или DBus (KDE и Gnome, соответсвенно) пообщаться с оконным менеджером.
Даже вызвать специфичекие функции. Вот с Windows, тут проблемма, т.к. не работаю уже давно и посмотреть негде. Могу только посоветовать MSDN на http://msdn2.microsoft.com/ru-ru/default.aspx.

И не надо тебе никаких singleapplication. Все делается проще и сложнее одновременно.

Цитировать
на один комп не кроссплатформенно.
На какую платформу тебе надо?
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #5 : Ноябрь 30, 2007, 04:38 »

Нужно на Linux Mandriva 2008
как с менеджером окон обращатся ?
и как именно сделать фулскрин на нужном мониторе ?
Записан
Alex03
Гость
« Ответ #6 : Ноябрь 30, 2007, 13:52 »

...
В системе с запущенной графикой, будь то Windows, *nix, Mac, всегда запущен менеджер окон. Он только один.
...
Пара примечаний:
1. На *nix-ах  никто не запрещает запускать несколько Х-серверов. Улыбающийся
2. В Х-сервере не обязательно д.б. запущен оконный менеджер. (без него тоже работает, но нет обрамлений окон, и прочей функциональности типо таскания окон, ресайзинг и .т.д. и т.п.)
3. Сказать любому приложению на каком Икс-сервере/десктопе запускаться довольно просто, например той же переменной окружения DISPLAY
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #7 : Декабрь 01, 2007, 21:22 »

попробую сделать окно 1280х2048 и разместить его чтобы было видно на обоих мониторах
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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