Вопрос

Простите, я новичок :)

Возможно ли в Qt создать собственное окно без границ, но которое можно будет перетаскивать, не удерживая клавишу Alt?Я создал окно без полей, но чтобы его можно было перетащить (в Linux), вам нужно удерживать клавишу Alt.

Я планировал создать окно с закругленными углами.У кого-нибудь есть идеи, как это сделать?Хотя я думаю, что реализация mouseMove, mousePress или чего-то еще является возможным решением, но мне нужно какое-то другое решение.

Спасибо

Это было полезно?

Решение

Есть только один способ заставить оконный менеджер переместить окно:Добавьте полосу перетаскивания.Если полоса перетаскивания отсутствует, ваше приложение должно переместить само окно, установив новое положение (т. е.вы должны самостоятельно обрабатывать события щелчка мыши + перемещения).

Возможность перемещения окна по нажатию Alt также является функцией вашего оконного менеджера, а не Qt.

Другие советы

Да, где-то есть пример закругленного окна с использованием часов, которые делают это.По сути, как говорит Аарон, вам нужно самостоятельно управлять щелчками мыши.

Вы можете использовать QDecoration (для встроенного Linux), чтобы сделать это: вот пример.

Обнаружьте, что мышь удерживается в вашем окне, затем захватите события перемещения мыши, чтобы вы могли перемещать окно синхронно с ним.Когда пользователь отпускает кнопку мыши, ваша задача завершена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top