[Android-development] touch-scrolling a custom widget and double-click
Rutledge Shawn
Shawn.Rutledge at theqtcompany.com
Mon Jul 27 09:55:47 CEST 2015
AFAIK FlickCharm is what evolved into QScroller, which has been shipped and documented for some time.
On 25 Jul 2015, at 21:39, Sebastian Diel <sdiel at funkmachine.de> wrote:
> Hi Michael & List,
>
> Am 25.07.2015 um 21:12 schrieb Michael Coffey:
>> Does anyone happen to know if there is a simpler way to do this? I looked at FlickCharm, but that entails a more complicated approach.
> Srsly? Complicated in what respects?
>
> Frankly, it's just adding the FlickCharm class into your project and write 3 lines per flickable Widget - as I said, even I managed to do this^^.
> Works flawlessly on every single one of my QWidget derived classes and I've actually never spent much brainwork on *how* it does this...
>
> Perhaps I am missing something, but I can't think of a "simpler" solution :) It is LPGL, though, as it is part of the Qt demos.
>
> Best Regards,
> Sebastian
>
>
>>
>> From: Sebastian Diel <sdiel at funkmachine.de>
>> To: Michael Coffey <xaffeine-m at yahoo.com>
>> Sent: Saturday, July 25, 2015 11:26 AM
>> Subject: Re: [Android-development] touch-scrolling a custom widget and double-click
>>
>> Hi Michael,
>>
>> have you tried the FlickCharm? That one proved so easy to use that even I could work with it :-)
>> (Worked on Android 4x and Windows, no other systems tested)
>>
>> Use it like this:
>> FlickCharm *flickCharm = new FlickCharm(this);
>> flickCharm->setScrollBarVisibility(scrollVisibility);
>> flickCharm->activateOn(tableWidget);
>>
>> BR
>> Sebastian
>>
>> Am 25.07.2015 um 19:08 schrieb Michael Coffey:
>>>
>>>
>>> I have developed a widget-based application that works well in linux and Windows. It mostly works in Android, too, but I haven't been able to get scrolling to work right.
>>>
>>>
>>>
>>> Most of my UI is inside a custom subclass of QWidget called GridWidget. This widget sits inside of a QScrollArea, which is also the central widget of my QMainWindow. I have a pointer variable, m_gridWidget, pointing to this custom widget. Some of the children of my GridWidget need to be double-clickable. The GridWidget, itself, needs to flick-scroll.
>>>
>>> To enable gesture-scrolling, I call QScroller::grabGesture, in a sequence like the following:
>>> QScrollArea * scroller = new QScrollArea();
>>> setCentralWidget( scroller );
>>> m_gridWidget = new GridWidget;
>>> scroller->setWidget( m_gridWidget );
>>> QScroller::grabGesture( centralWidget() );
>>>
>>> The grabGesture() does enable scrolling but it disables double-clicks on most of the children of the gridWidget. Interestingly, child widgets inside the gridWidget get to see clicks, but they do not see double-clicks. I have a workaround for that subproblem by implementing mouseReleaseEvent for a child widget class.
>>>
>>> More importantly, flick-scrolling the main widget only works in the part of the widget where there are no child widgets. I want to be able to initiate the gesture anywhere in the region.
>>>
>>> How can I get this to work on Android? I am currently using QT 5.5 and testing on Android 5.0.2.
>>>
>>>
>>>
>>> _______________________________________________
>>> Android-development mailing list
>>>
>>> Android-development at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/android-development
>>
>>
>> --
>>
>> http://www.classintouch.de - Tablet-Software für Lehrer
>>
>>
>>
>>
>> _______________________________________________
>> Android-development mailing list
>>
>> Android-development at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/android-development
>
>
> --
>
> http://www.classintouch.de - Tablet-Software für Lehrer
> _______________________________________________
> Android-development mailing list
> Android-development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/android-development
More information about the Android-development
mailing list