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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QSystemTrayIcon->geometry врет координаты  (Прочитано 9147 раз)
Bepec
Гость
« Ответ #15 : Апрель 05, 2012, 17:47 »

Попробуй выводить в дебаг консоль каждый раз при изменении геометрии.
Записан
_OLEGator_
Гость
« Ответ #16 : Апрель 05, 2012, 20:38 »

у меня в 7 винде нормально позиционируется.
Про линукс могу предположить, что пока не отработает show, в QSystemTrayIcon еще не установлены правильные координаты geometry, надо во время работы смотреть, что возвращает geometry.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #17 : Апрель 05, 2012, 20:55 »

скорее всего что иконка не успевает встроится в трей, т.к. это происходит асинхронно. Для тестирования создай иконку в трее, и по таймеру через 2 секунды прочитай геометрию и выведи её на консоль.
Записан
kazenniy
Гость
« Ответ #18 : Апрель 06, 2012, 09:15 »

С таймерами еще не знаком, с QT познакомился неделю назад всего. Буду разбираться.
Записан
kazenniy
Гость
« Ответ #19 : Апрель 06, 2012, 11:22 »

Похоже действительно не успевает иконку вставить. Поставил задержку 1 сек. перед запросом geometry и все заработало. При этом задержки в 0.5 сек. не хватает.
Занятная разница между платформами получается. =)
Осталось разобраться как по человечески определить готовность иконки, с задержкой делать некузяво.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #20 : Апрель 06, 2012, 13:59 »

Похоже действительно не успевает иконку вставить. Поставил задержку 1 сек. перед запросом geometry и все заработало. При этом задержки в 0.5 сек. не хватает.
Занятная разница между платформами получается. =)
Осталось разобраться как по человечески определить готовность иконки, с задержкой делать некузяво.
Так вы запрашивайте, как я предлагал, не при создании иконки, а перед показом окна, для которого вы вычисляете положение (к этому месту иконка уже должна быть на своём месте).
Всё равно заранее вычислять 1 раз вычислять геометрию не дело. Иконка могла подвинуться другими иконками, панель могли в другую часть экрана перетащить, да разрешение поменять в конце концов.
Записан
kazenniy
Гость
« Ответ #21 : Апрель 06, 2012, 19:40 »

Вроде тогда это не помогло. Хотя тогда у меня не было понимания причины, теперь оно вроде есть. Буду пробовать снова.
Спасибо.
Записан
kazenniy
Гость
« Ответ #22 : Апрель 07, 2012, 09:19 »

Как ни странно, в этот раз все получилось. К моменту вызова slotShowHide иконка уже готова и окошко рисуется как нужно. Всем спасибо за участие!
А может ктонить подскажет, как получить информацию о размере и местоположении трея? А то не понятно в какую сторону окошко рисовать.
Записан
Bepec
Гость
« Ответ #23 : Апрель 07, 2012, 13:27 »

QDesktop* позволяет получить размеры экрана, в которые(windows) не включена панель задач.
pos позволяет получить размеры иконки и её положение.
Проводим несложные вычисления + размер окна + в какую сторону открываться и вуаля.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #24 : Апрель 07, 2012, 15:48 »

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


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