Название: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 28, 2009, 15:32 Нужно сделать полупрозрачный виждет, чтобы клики мышки проходили сквозь него.
1) setAttribute(Qt::WA_TransparentForMouseEvents); Не помогло. Мышь всё-равно в него тыкается. Или это только у меня такая проблема? 2) Виджет QRubberBand у мня также не сквозной. Или так только у меня? Qt 4.5.2(static linked), msvc-2005, Windows XP SP3 (home) Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: Winstrol от Август 28, 2009, 15:48 examples/widgets/shapedclock?
Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 28, 2009, 15:58 examples/widgets/shapedclock? В этом пример виджет круглой формы. Но он реагирует на мышь. Его можно таскать по экрану. Мне нужен виджет поверх всех окон и пропускающий сквозь себя мышку. То есть мышка не может с ним взаимодействовать. Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: ecspertiza от Август 28, 2009, 16:01 Зачем тебе это? И что будет под этим виджетом? просто рабочий стол?
Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 28, 2009, 16:09 examples/widgets/shapedclock? Вот нашёл в коде: Код
Осталось указать пустой регион и всего делов. Пробую. Спасибо. Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 28, 2009, 16:15 Зачем тебе это? И что будет под этим виджетом? просто рабочий стол? Например, это может быть монитор трафика/RAM/HDD . . . Если он будет прозрачен и неприкасаем для - он считай не занимает на экране места. Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 28, 2009, 16:28 examples/widgets/shapedclock? Вот нашёл в коде: Код
Осталось указать пустой регион и всего делов. Пробую. Спасибо. Нет. Это совсем не то))) Рисуется только часть под маской. Я таким образом сделал виджет невдимым. А он должен быть видим, но не хватаем . . . Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: SASA от Август 28, 2009, 19:12 посмотри
http://www.prog.org.ru/index.php?topic=7303 (http://www.prog.org.ru/index.php?topic=7303) Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 29, 2009, 23:37 посмотри http://www.prog.org.ru/index.php?topic=7303 (http://www.prog.org.ru/index.php?topic=7303) Описанным там способом, можно только виджеты одного приложения уведомлять . . . А мне нужно чтобы можно было все окна системы трогать сквозь мой виджет . . . Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: SASA от Август 31, 2009, 15:02 Способ есть. Каждый раз пробивать под курсором дырку в один пиксель. Дырку пробиваем с помощь setMask. Этот способ используют сами троли (я его увидел в исходниках Qt). Проблемы - это вид курсора и нижнему окошку будет постаянно приходить мауслив.
Возможно эти проблемы решаемые. Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Август 31, 2009, 22:34 Способ есть. Каждый раз пробивать под курсором дырку в один пиксель. Дырку пробиваем с помощь setMask. Этот способ используют сами троли (я его увидел в исходниках Qt). Проблемы - это вид курсора и нижнему окошку будет постаянно приходить мауслив. Возможно эти проблемы решаемые. Не могли бы вы подробнее указать, где именно вы такое видели. Хотелось бы взглянуть на реализацию по-ближе . . . Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: SASA от Сентябрь 01, 2009, 16:17 Не могли бы вы подробнее указать, где именно вы такое видели. Хотелось бы взглянуть на реализацию по-ближе . . . QTDIR\src\gui\kernel\qapplication.cpp функция QWidget *QApplication::widgetAt(const QPoint &p) P.S. Лучше обращаться ко мне на ты. Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Сентябрь 02, 2009, 00:46 SASA, огромное спасибо тебе!!!
Ниже приведу код класса. Теперь имеется полупрозрачный виджет, сквозь который можно работать мышкой. Таскать иконки у меня не получилось (можно для этого пробивать дырку побольше), но кликается по всему нормально. И даже вид курсора зависит от элемента под ним. Код
Название: Re: Как сделать виджет, сквозь который можно кликать мышкой? Отправлено: k06a от Сентябрь 02, 2009, 01:08 Лучше вот такое условие:
Код
|