Thanks Srini.
I don't think the animation is the actual problem here but rather getting the actual widget's position. the animation just makes it obvious that widget.pos() is hot the true position of the widget, as it seems to get offset by parents' frame widths and other stuff (at least that's what it looks like). So in other words, I'm just after a 100% reliable way to get a widget's position on screen no matter what layout/parent widget it is part of.

Sorry for not posting an example snippet, will try to extract a light weight bit a bit later if required.


Cheers,
frank

On 19/06/12 5:30 PM, Srini Kommoori wrote:
Frank, Pls disregard the previous info then.

I tried doing my own animation but gave up after playing around with QGraphicsView as it has in-built animation controls.

While trying to do my own custom animation, QPainterPath.cubicTo was very useful in getting bezier curve implementation for smooth animations. If you are not using this, it might be useful ( http://goo.gl/0qlBG - PySide docs to QtGui.QPainterPath.cubicTo)

All the best.

thanks,
-Srini

On Mon, Jun 18, 2012 at 9:14 PM, Frank Rueter | OHUfx <[email protected] <mailto:[email protected]>> wrote:

    Hi Srini,

    thanks for the details but I'm not using QGraphicsView.
    This is a custom Widget with a stacked layout, that slides the old
    widgets out of frame and the new ones in.
    I'm thinking something like this might be what I need to collect
    and add to the widgets' position to get their true positional
    values (so the animation won't stutter):
    self.style().pixelMetric( QStyle.PM_DefaultFrameWidth )






    On 19/06/12 4:08 PM, Srini Kommoori wrote:
    As you are asking about animation, I am assuming you are
    using QtGui.QGraphicsView.

    Working with QGraphicsView, I found following few key things
    related to size/coordinates.

    1. By default QtGui.QGraphicsView aligns the scene to center. So
    all resizes are set wrt center. To change the anchoring back to
    top, use following.

    setAlignment(QtCore.Qt.AlignTop)

    2. If you are trying to get resizable scene, you may want to
    use resizeEvent of QtGui.QGraphicsView and adjust your
    widgets/layouts.

    3. Have a default screen size so that widget reference starting
    point is something you can always control. You could also do
    relative distances based on the screen size - but it is some more
    initialization that you need to take care of.

    Hope above is what you are looking for.

    thanks
    -Srini

    On Mon, Jun 18, 2012 at 4:33 PM, Frank Rueter | OHUfx
    <[email protected] <mailto:[email protected]>> wrote:

        Hi everyone,

        I am trying to learn what inherited value may contribute to a
        widget's
        real screen position.

        In my example I have a widget that I am animating out of
        frame, so I
        need to determine exactly what it's static position is to be
        able to set
        that as the animation's start value. If I just use
        QWidget.pos().x() I
        am 5 pixels off. So currently I'm just adding 5 pixels
        manually, but
        would love to understand where those come from and how to
        calculate the
        widget's position properly and reliably.

        Any ideas anyone?

        Cheers,
        frank
        _______________________________________________
        PySide mailing list
        [email protected] <mailto:[email protected]>
        http://lists.qt-project.org/mailman/listinfo/pyside



_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to