[Development] Review for new widget module [your advices are needed]

Jesus Fernandez jesus.fernandez at qt.io
Mon Oct 16 13:00:39 CEST 2017

Hello Iman,

I tried to give a try to this thing. I think you forgot to add a couple of files:
* style/palettes.h
* style/styleoption.h
Best regards,

On 2017-10-14 09:33:52+02:00 iman ahmadvand wrote:

Hi everyone.
Before I send some code base on codereview and decide whether my implementation meets the requirements,  I  just want to know your thoughts about design decision for the new module I’m trying to add to Qt Play ground.
So as you probably guessed my plan is to developing a new widget module (which I’m going to name it MaterialWidgets) for Qt, a modern collection of widgets that should have the same look and feel on all platforms. All the GUI parameters and styles are taken from material style guide line(https://material.io/guidelines). You can think of MaterialWidgets as the MaterialStyle in QML design but in pure C++.
Here is a few things to clarify:
1.Why someone need to use material styled widgets in Qt?
There are a bunch of app out there that need this to be available on widgets so they can easily take the benefit of newly added widget set.
2.Why a new widget set? why just no to use already built-in styles?
Material widgets are going to be a special set of controls which has animations by default, and GUI parameters are differs from built-in QtWidgets. for an example material style has a component called ContinuousSlider which has two sub component Thumb and Track and two state On(value == 0) and Off(value != 0) and a color palette for each state, so doing this with styles can't be done unless we change the enumerators and maybe more!
3.Are every thing from scratch ?
No. not at all.
I just make some changes in inherited classes from built-in QtWidgets (basics AND abstracts), so the logics behind those widgets should be the same.
A note for animation implementation  in MaterialWidgets:
A class called Animation is responsible for animating those widgets, the simple idea behind that is to have a target object (which mostly is a widget) associated with animation objet and after every refresh in animation (updateCurrentValue) we should make an update of type StyleAnimationUpdate in target widget so it makes the code base more cleaner.
Here you can see just a review version of module (just ContinuousSlider is included): ​
[https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png] qtmaterialwidgets.zip<https://drive.google.com/file/d/0BxRSkzkLrTjVeS1xd0VRMHJQS0k/view?usp=drive_web>
I'm ready to hear your advices and thoughts.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20171016/627de155/attachment.html>

More information about the Development mailing list