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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Позиционирование в правый нижний угол (выше трея)  (Прочитано 7452 раз)
wenny
Гость
« : Май 31, 2016, 12:29 »

Доброго времени суток. Есть маленькая тулза, висящая в трее, и имеющая небольшую формочку, которую хотелось бы выводить поверх трея в правом нижнем углу. Кряхтя и причитая наскреб вот такую конструкцию:
Код
C
QDesktopWidget* desktop = QApplication::desktop();
QRect r = desktop->availableGeometry();
r.setLeft(r.center().x());
this->move(r.bottomRight());

Оная отправляет форму за пределы экрана. Насколько я понимаю, нужно сдвигаться с учетом высоты трея и длины самого приложения. Подскажите, пожалуйста, как по-людски все это реализуется? Может уже есть готовое апи на этот счет, дабы не сотрясать этот мир новой порцией инноваций в области велосипедостроения? Покорнейше благодарю.
« Последнее редактирование: Май 31, 2016, 12:31 от wenny » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Май 31, 2016, 12:33 »

а так?

this->move(r.bottomRight() - this->size());

Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
wenny
Гость
« Ответ #2 : Май 31, 2016, 12:40 »

А так вопит на гороскопную несовместимость QPoint и QSize Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Май 31, 2016, 12:46 »

ну переведите тогда QSize в QPoint  Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
wenny
Гость
« Ответ #4 : Май 31, 2016, 12:50 »

Гугол молчит.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Май 31, 2016, 13:03 »

Код
C++ (Qt)
this->move(r.bottomRight() - this->rect());
Записан

wenny
Гость
« Ответ #6 : Май 31, 2016, 13:30 »

Я буду премного благодарен, если кто-нибудь объяснит, как же конвертить QRect и QSize в QPoint.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Май 31, 2016, 13:37 »

Код
C++ (Qt)
this->move(r.bottomRight() - this->rect());
"Недолет", лучше так
Код
C++ (Qt)
this->move(r.bottomRight() - this->rect().bottomRight() - QPoint(2, 2));
 
Записан
wenny
Гость
« Ответ #8 : Май 31, 2016, 13:49 »

"Недолет", лучше так
Код
C++ (Qt)
this->move(r.bottomRight() - this->rect().bottomRight() - QPoint(2, 2));
 
Спасибо, завелось. А как быть с треем?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #9 : Май 31, 2016, 14:12 »

Хм... а ведь реально, в Qt не хватает фреймворка конвертирования QSize в QPoint и наоборот Грустный
А задача очень актуальная, хотя ее сложность может изначально отпугивать...
Может, есть смысл запилить модуль QSizePointConversionFramework...?

Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Май 31, 2016, 14:20 »

Спасибо, завелось. А как быть с треем?
А чего Вы от него хотите? Вообще кто это? Линейка внизу? (Dock в OSX, TaskBar в Вындоуз). Так там рисовать нельзя (не положено)
Записан
wenny
Гость
« Ответ #11 : Май 31, 2016, 14:22 »

А чего Вы от него хотите? Вообще кто это? Линейка внизу? (Dock в OSX, TaskBar в Вындоуз). Так там рисовать нельзя (не положено)
На счет рисований не знаю, а вот задница GUI-шки туда прекрасно помещается Улыбающийся Хотелось бы ее позиционировать стабильно выше этой "линейки". Длину же ее можно выяснить?
« Последнее редактирование: Май 31, 2016, 14:24 от wenny » Записан
AlexEx
Чайник
*
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #12 : Май 31, 2016, 14:49 »

Не забыть, что трей может быть не только внизу, но и слева, справа, сверху  Улыбающийся.
Записан
wenny
Гость
« Ответ #13 : Май 31, 2016, 21:21 »

Черт с ним, пусть по центру буйт Улыбающийся Всем спс.
Записан
Bepec
Гость
« Ответ #14 : Июнь 01, 2016, 08:58 »

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


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