|
|
|
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Есть 2 монитора с независимыми друг от друга рабочими столами (без использования опции TwinView (единый раб. стол)). При загрузке приложения необходимо загрузить одну его форму во весь экран1 (верхний дисплей), а другую форму – на весь экран2 (нижний дисплей)…как это оптимальнее и изящнее всего сделать?
Я в свое время пробовал так
Но не уверен, что это сработает (на данный момент нет возможности это проверить)… Но это с привязкой к разрешениями мониторов (1280x1024) – типа я прошу вывести мне форму Form1 например размером 100х100 в координаты (0,0) и раскрываю ее на весь экран, а затем – форму Form2 размером 100х100 в координаты (0, например 1025) – типа ниже формы Form1 в надежде, что у обоих мониторов единый “пиксельный размер…а вот если это не так, то как такую задачку решить без привязки к текущим разрешениям мониторов? Это сообщение отредактировал(а) gordmiand - 22.7.2010, 23:15 |
|||
|
||||
pilotnet |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
Глянь QDesktopWidget
|
|||
|
||||
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
pilotnet: дайте пож-та примерчик, а то я не совем понял по-английски что именно из этого класса и как надо использовать...
задача - вывести разные формы одного приложения на независимые друг от друга рабочие столы двух мониторов (каждую форму во весь экран (showFullScreen))... |
|||
|
||||
pilotnet |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
QRect screenres = QApplication::desktop()->screenGeometry(screenNumber);
widget->move(QPoint(screenres.x(), screenres.y())); |
|||
|
||||
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
pilotnet:
то есть я могу написать:
и тогда при загрузке приложения форма Form1 будет во весь экран1, а форма2 - во весь экран2 или нет? если нет, то тогда как это сделать правильно (просто в данный момент нет возможности проверить вышеприведенный мой код на 2 мониторах)? Это сообщение отредактировал(а) gordmiand - 29.7.2010, 22:13 |
|||
|
||||
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
пробовал так: (операционка Linux OpenSuse 10.3)
это конечно не работает - одна форма выводится поверх другой на одном и том же экране, на котором было запущено приложение, так как у меня 2 независимых друг от друга рабочих стола - т.е. какое-либо окошко нельзя перетащить с одного экрана на другой, но мышка переходит (так и должно быть) - так как же при такой настройке рабочих столов мониторов сделать вывод каждой формы (Form1 и Form2) на свой экран (№0 и №1 соответственно (номера я менял на 1 и 2 - не помогает))? ... использование размеров (как в примере выше) каждой формы не помогает, так как у каждой из них свое разрешение (у каждой 1280*1024 - так и должно быть)... подскажите пож-та...очень надо.... |
|||
|
||||
SABROG |
|
|||
Hacker Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А QDesktopWidget::screenCount() вообще возвращает число больше одного?
|
|||
|
||||
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
SABROG: конечно screenCount возвращает число >1...почему нет? у меня эта функция возвращает "2" (собственно 2 монитора у меня и есть)...только к чему тут эта функция?
|
|||
|
||||
SABROG |
|
|||
Hacker Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
При создании виджетов попробуй для одного выставить родителем один экран, а для другого другой:
|
|||
|
||||
gordmiand |
|
|||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
допустим такой примерчик:
ошибка: error: cannot call member function 'QWidget* QDesktopWidget::screen(int)' without object |
|||
|
||||
SABROG |
|
|||
Hacker Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Извиняюсь, я не обратил внимание, что метод не статический. Тогда так:
|
|||
|
||||
gordmiand |
|
||||
Опытный Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
ошибку исправил так:
но эффекта все равно нет...обе формы выводятся на один и тот же экран вне зависимости от указанного мной в констукторе номера экрана для Form2...так почему же не воспринимается задание номера экрана для формы? вроде QDesktopWidget::screen возвращает QWidget *, что как раз и надо для параметра (задает родителя для формы) конструктора класса Form2...ничего не понимаю....вроде так все логично - в качестве родителя форме задаешь нужный тебе экран...может надо делать какие-то дополнительные магипуляции с классом Form2? затем пробовал еще так:
без именений... на всякий случай кинул проект проги... Это сообщение отредактировал(а) gordmiand - 3.8.2010, 10:07 Присоединённый файл ( Кол-во скачиваний: 10 ) Proekktt_v2.rar 11,73 Kb |
||||
|
|||||
SABROG |
|
|||
Hacker Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Попробуй получить ширину в разрешении монитора через QDesktopWidget::availableGeometry(), а потом вызвать метод move() у своего виджета, чтобы передвинуть виджет дальше чем позволяет ширина рабочего стола, возможно тогда виджет появится на другом монике. |
|||
|
||||
wectula |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 9.12.2022 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |