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

iman ahmadvand iman72411 at gmail.com
Sat Oct 14 09:33:13 CEST 2017

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

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

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

Here you can see just a review version of module (just ContinuousSlider is
included): ​

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/20171014/8f7d927a/attachment.html>

More information about the Development mailing list