Здравствуйте увадажаемые форумчане!
Мучаю QSvgWidget на Qt. Надо сделать крутящийся элемент (ожидание).
Вижу , что крутит но ось смещена куда-то влево.
Вот код:
QIcon icon(":eqpt/waiting/spinner0.gif");
// QSvgRenderer * svg_renderer = new QSvgRenderer( QString(":view/img/checked.svg") , this);
// QSvgRenderer * svg_renderer = new QSvgRenderer( QString(":eqpt/check-disabled.svg") , this);
QpSvgWidget *svg0 = new QpSvgWidget( this );
svg0->load( QString(":eqpt/waiting/spinner1.svg") );
svg0->setBaseSize( QSize( 200, 200 ));
QpSvgWidget *svg1 = new QpSvgWidget( this );
svg1->setBaseSize( QSize( 200, 200 ));
svg1->setMinimumSize( 200 , 200 );
svg1->setMaximumSize( 200 , 200 );
svg1->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed);
svg1->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed);
svg1->load( QString(":eqpt/waiting/spinner1.svg") );
svg1->setAutoFillBackground(false);
ui->vl_0->addWidget( svg0 );
ui->vl_4->addWidget( svg1 );
Вот сам svg:
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
<radialGradient id='a11' cx='.66' fx='.66' cy='.3125' fy='.3125' gradientTransform='scale(1.5)'>
<stop offset='0' stop-color='#1302DC'></stop><stop offset='.3' stop-color='#1302DC' stop-opacity='.9'></stop>
<stop offset='.6' stop-color='#1302DC' stop-opacity='.6'></stop>
<stop offset='.8' stop-color='#1302DC' stop-opacity='.3'></stop>
<stop offset='1' stop-color='#1302DC' stop-opacity='0'></stop>
</radialGradient>
<circle transform-origin='center' fill='none' stroke='url(#a11)' stroke-width='15' stroke-linecap='round' stroke-dasharray='100 500' stroke-dashoffset='0' cx='50' cy='50' r='40'>
<animateTransform type='rotate' attributeName='transform' calcMode='spline' dur='2' values='360;0' keyTimes='0;1' keySplines='0 0 1 1' repeatCount='indefinite'>
</animateTransform>
</circle>
<circle transform-origin='center' fill='none' opacity='.2' stroke='#222222' stroke-width='15' stroke-linecap='round' cx='50' cy='50' r='40'></circle>
</svg>
в браузере картинка крутится правильно, но мне надо в Qt 4, а тут нижний circle (который стоит на месте) - располагается правильно, а вот animateTransform крутится вокруг оси, которая как-то смещена влево и вверх (похоже ось на 0,0 координатах).
Может кто скажет как решить проблему? Какой класс переопределить и т.д.
Как видео прикрепить не понял пока.