crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> [РЕШЕНО] libxrandr: изменение параметров подключенных мониторов
fluffyMan2000
  опции профиля:
сообщение 3.3.2013, 11:33
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

Спасибо сказали: 0 раз(а)




Репутация:   0  


Пишу приложение на C++/Qt со следующим функционалом: установить разрешение и ориентацию для монитора. все ок работает, написал. однако стала задача расширить функционал и включить поддержку двух мониторов.
что именно надо:
1) определить подключенные мониторы
2) установить для каждого свое разрешение
3) установить для каждого свою ориентацию

подскажите как это сделать

Сообщение отредактировал fluffyMan2000 - 6.3.2013, 10:53
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 3.3.2013, 14:41
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Могу предложить найти сорцы этой проги:
http://userbase.kde.org/System_Settings/Display_and_Monitor
где-то тут:
https://projects.kde.org/projects/kde/kde-w.../systemsettings
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 3.3.2013, 20:09
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(RazrFalcon @ 3.3.2013, 14:41) *
Могу предложить найти сорцы этой проги:
http://userbase.kde.org/System_Settings/Display_and_Monitor
где-то тут:
https://projects.kde.org/projects/kde/kde-w.../systemsettings


скачал *.gz. не захотел распаковываться. 200Мб кода разгребать..

нашел исходники утилиты xrandr, которая, собственно и использует libxrand. но никак не могу разобраться в ней. может быть Вы поможете? хотя бы куда смотреть?

исходник прикрепил
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 3.3.2013, 21:10
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


1) не прикрепил
2) нет, я ей не пользовался
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 4.3.2013, 8:55
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Например так:
http://qt-project.org/doc/qt-4.8/qdesktopwidget.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 4.3.2013, 9:17
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(RazrFalcon @ 3.3.2013, 22:10) *
1) не прикрепил
2) нет, я ей не пользовался


блин, прикрепил и забыл нажать "загрузить"

Цитата(lanz @ 4.3.2013, 9:55) *


это совсем не то. единственное, чем этот класс может помочь - определить количество подключенных мониторов.
Прикрепленные файлы
Прикрепленный файл  xrandr.c.txt ( 99.73 килобайт ) Кол-во скачиваний: 407
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 4.3.2013, 9:20
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Цитата(fluffyMan2000 @ 4.3.2013, 10:17) *
это совсем не то. единственное, чем этот класс может помочь - определить количество подключенных мониторов.

Ну да, а потом к каждому монитору применить
Цитата
установить разрешение и ориентацию для монитора. все ок работает, написал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 4.3.2013, 11:30
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(lanz @ 4.3.2013, 10:20) *
Цитата(fluffyMan2000 @ 4.3.2013, 10:17) *
это совсем не то. единственное, чем этот класс может помочь - определить количество подключенных мониторов.

Ну да, а потом к каждому монитору применить
Цитата
установить разрешение и ориентацию для монитора. все ок работает, написал.



дело в том, что в функциях этой библиотеки нет такого, чтобы установить свойства монитора по номеру. там какая-то хитрая архитектура, которую я понять не могу. вот по этому примеру сделал свое приложение, работающее с одним монитором - http://www.opengl.org/wiki/Programming_Ope...reen_Resolution
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 4.3.2013, 11:53
Сообщение #9


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


По ссылке:
root   = RootWindow(dpy, 0);

Подозрительный второй параметр, идем в гугл:
http://tronche.com/gui/x/xlib/display/display-macros.html
RootWindow(display, screen_number)

Window XRootWindow(display, screen_number)
      Display *display;
      int screen_number;

display                         Specifies the connection to the X server.
screen_number             Specifies the appropriate screen number on the host server.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 4.3.2013, 12:10
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(lanz @ 4.3.2013, 12:53) *
По ссылке:
root   = RootWindow(dpy, 0);

Подозрительный второй параметр, идем в гугл:
http://tronche.com/gui/x/xlib/display/display-macros.html
RootWindow(display, screen_number)

Window XRootWindow(display, screen_number)
      Display *display;
      int screen_number;

display                         Specifies the connection to the X server.
screen_number             Specifies the appropriate screen number on the host server.


нетбук. к нему подключен монитор. имена LVDS1 и VGA1.
при
root   = RootWindow(dpy, 0);

все ок, программа запускается.
при
root   = RootWindow(dpy, 1);

"программа неожиданно завершилась"

у Вас два монитора? можете Вы проверить? а то я уже начинаю думать, что дело в том, что у меня один монитор как-бы встроенный - в нетбуке который..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 14:32