crossplatform.ru

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

> Прозрачнойсть вокруг виджетов необычной формы
edwardoid
  опции профиля:
сообщение 29.9.2010, 8:55
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


идея проста нужно нарисовать нечто такое:


Где черная зона должна быть прозрачной, зеленые прямоугольники - кнопки или любой другой виджет.
Проблема в том, что элементы находятся в этих окружностях и если пользователь кликает вне этих окружностей, окружности со своим содержимым должны пропасть(стать невидимыми), т.е. только если пользователь кликнул внутри окружностей (в общем случае любая другая ограниченная площадь).

Сообщение отредактировал edwardoid - 29.9.2010, 8:58
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 29.9.2010, 9:44
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


вот так
Цитата
void QPainter::setClipRegion ( const QRegion & region, Qt::ClipOperation operation = Qt::ReplaceClip )
Sets the clip region to the given region using the specified clip operation. The default clip operation is to replace the current clip region.

Note that the clip region is given in logical coordinates.

See also clipRegion(), setClipRect(), and Clipping.

и хочь там что динамическое :) Правда, сам это под Qt не пробовал (ищу аналогию с WinAPI). Заодно и расскажешь ))

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

Сообщений в этой теме
- edwardoid   Прозрачнойсть вокруг виджетов необычной формы   29.9.2010, 8:55
- - Алексей1153   QRegion в помощь заливаешь окно чёрным, рисуешь к...   29.9.2010, 9:02
|- - edwardoid   Цитата(Алексей1153 @ 29.9.2010, 11:02) QR...   29.9.2010, 9:09
- - Алексей1153   edwardoid, посмотри тогда эту тему http://www.foru...   29.9.2010, 9:16
- - edwardoid   У меня тоже пнг и виджеты будут там, где закрашено...   29.9.2010, 9:17
- - Алексей1153   в твоём случае PNG как бы и не требуется, разве чт...   29.9.2010, 9:19
- - edwardoid   Он картиночный по любому, там фон важный закрасить...   29.9.2010, 9:21
- - Алексей1153   Кстати, с регионами таки универсальнее будет - а д...   29.9.2010, 9:24
- - edwardoid   Не понял. Как понять "подрезать"? У меня...   29.9.2010, 9:31
- - Алексей1153   вот так Цитатаvoid QPainter::setClipRegion ( const...   29.9.2010, 9:44
- - Litkevich Yuriy   Цитата(edwardoid @ 29.9.2010, 13:31) Вот ...   29.9.2010, 10:00
|- - edwardoid   Цитата(Litkevich Yuriy @ 29.9.2010, 12:00...   29.9.2010, 10:07
- - ufna   Ну я тут сделал именно двумя виджетами. Меню пропа...   29.9.2010, 10:17
- - Litkevich Yuriy   Цитата(edwardoid @ 29.9.2010, 14:07) Не с...   29.9.2010, 13:29


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


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




RSS Текстовая версия Сейчас: 19.2.2025, 0:49