Название: Пользовательский курсор мышки Отправлено: IGHOR от Декабря 23, 2007, 01:37 Можно както задать курсор мышки из QPixmap(200,200) например ?
или как сделать анимацию нажатия мышки на проге поверх всех виджетов ? Название: Re: Пользовательский курсор мышки Отправлено: ритт от Декабря 23, 2007, 02:22 Цитировать QCursor::QCursor ( const QPixmap & pixmap, int hotX = -1, int hotY = -1 ) Constructs a custom pixmap cursor. pixmap is the image. It is usual to give it a mask (set using QPixmap::setMask()). hotX and hotY define the cursor's hot spot. If hotX is negative, it is set to the pixmap().width()/2. If hotY is negative, it is set to the pixmap().height()/2. Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors. > или как сделать анимацию нажатия мышки на проге поверх всех виджетов ? /* крайне бестолковая формулировка. попробуй понажимать на мышку - она анимирует?! и как должна реагировать при этом "прога"? */ т.к. курсор из пиксмапа 200х200рх создать не удастся, но тебе очень надо, создай из полностью прозрачного пиксмапа 32х32рх свой курсор, создай лабел и поставь ему родителем виндов() или виджет, над которым твой кастомный курсор должен бегать, установи на этот лабел пиксмап 200х200рх, а у родительского виджета переопредели моусемуве/моусепрессед/моусерелизед, которые и будут соответственно реагировать, двигая лабел и т.п. довольно извращённо, но зато можно поставить не пнгшку, а анимированную гифку, например, на нажатие кнопки мыши Название: Re: Пользовательский курсор мышки Отправлено: IGHOR от Декабря 23, 2007, 02:40 Прога будет под точскрином.
Мышка будет прозрачной. а при прикосновение на кнопке будет красивая анимация капли воды :) Хотелось бы еще это реализовать :) xep, Про лабел спасибо! так и сделаю. А еще вопрос. ХОтелось бы чтобы эта капля была похожей на настоящюю каплю :) тоисть чтобы выгибала все что под ней. Это просто ? или без опенжл не обойтись ? Название: Re: Пользовательский курсор мышки Отправлено: IGHOR от Декабря 23, 2007, 03:04 Код: довольно извращённо, но зато можно поставить не пнгшку, а анимированную гифку, например, на нажатие кнопки мыши Название: Re: Пользовательский курсор мышки Отправлено: ритт от Декабря 23, 2007, 03:05 эффект стекла, помнится, делали даже на акшенскрипте втором...с шариком или каплей будет несколько сложнее. т.к. искажение картинки должно быть неравномерным
можно обойтись без опенжл, если процессор не слишком медленный и видеоадаптер не интегрированный и не слишком старый как минимум два варианта: 1. обсчитывать положение пикселя на поверхности полусферы, исходя для простоты из принципов, что вектор взгляда на полусферу всегда перпендикулярен плоскости её сечения и "глаз" всегда равноудалён от этой самой плоскости сечения, а источник света, например, сам "глаз". при этом, искажения цвета в зависимости от положения пикселя на поверхности полусферы можно отбросить (можно и не отбрасывать, а обсчитывать по упрощённой формуле), и шаг для узлов, из которых будет состоять полусфера должен быть меньше градуса (чем меньше, тем лучше) - чтобы не появлялись "слепые пятна" 2. создать в фотожопе 24-разрядную пнгшку с альфа-слоём, на которой нарисовать круговой градиент из белого в прозрачный, заливаемый по косинусоиде...или воспользоваться стандартной тулзой "пузырь" на полу-прозрачном белом слое но мне почему-то кажется, что юзверю это нах не надо :) Название: Re: Пользовательский курсор мышки Отправлено: ритт от Декабря 23, 2007, 03:06 Код: довольно извращённо, но зато можно поставить не пнгшку, а анимированную гифку, например, на нажатие кнопки мыши с анимацией гифки я, возможно, переборщил...не знаю, пока что не было такой потребности Название: Re: Пользовательский курсор мышки Отправлено: IGHOR от Декабря 23, 2007, 03:48 Спасибо, Админ ;) . Чтото придумаю
Название: Re: Пользовательский курсор мышки Отправлено: IGHOR от Января 08, 2008, 00:13 Цитировать QCursor::QCursor ( const QPixmap & pixmap, int hotX = -1, int hotY = -1 ) Constructs a custom pixmap cursor. pixmap is the image. It is usual to give it a mask (set using QPixmap::setMask()). hotX and hotY define the cursor's hot spot. If hotX is negative, it is set to the pixmap().width()/2. If hotY is negative, it is set to the pixmap().height()/2. Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors. > или как сделать анимацию нажатия мышки на проге поверх всех виджетов ? /* крайне бестолковая формулировка. попробуй понажимать на мышку - она анимирует?! и как должна реагировать при этом "прога"? */ т.к. курсор из пиксмапа 200х200рх создать не удастся, но тебе очень надо, создай из полностью прозрачного пиксмапа 32х32рх свой курсор, создай лабел и поставь ему родителем виндов() или виджет, над которым твой кастомный курсор должен бегать, установи на этот лабел пиксмап 200х200рх, а у родительского виджета переопредели моусемуве/моусепрессед/моусерелизед, которые и будут соответственно реагировать, двигая лабел и т.п. довольно извращённо, но зато можно поставить не пнгшку, а анимированную гифку, например, на нажатие кнопки мыши По вашему советю юзал такой способ. ПОд виндой все Супер! Перекинул все исходники в Линукс при анимации лабел постоянно моргает белым фоном. На чем еще можна рисовать анимацию ? |