<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Aaron,<br>
    <br>
    I've modified your example code in an attempt to make it dynamic
    based on a given data set.<br>
    The data is a nested dictionary of this form:<br>
        data = dict(<br>
            containerA= (<br>
               dict(CatAA=['A1', 'B1', 'C1'],<br>
                    CatAB=['A2', 'B2', 'C2'],<br>
                    CatAC=['A3', 'B3', 'C3'])),<br>
            containerB= (<br>
               dict(CatBA=['A4', 'B4', 'C4'],<br>
                    CatBB=['A5', 'B5', 'C5'],<br>
                    CatBC=['A6', 'B6', 'C6'])),<br>
            containerC= (<br>
               dict(CatCA=['A7', 'B7', 'C7'],<br>
                    CatCB=['A8', 'B8', 'C8'],<br>
                    CatCC=['A9', 'B9', 'C9'])))<br>
    <br>
    I now have to create buttons dynamically based on how the containers
    and categories in this data set (and eventually figure out how to
    also take the categories' contents into account and generate buttons
    for those as well, which can be controlled by Animator instance).<br>
    At the moment I'm running into the problem that when I create an
    instance of a "WidgetPage" inside a loop and hand it over to your
    Animator (see line 113), the bindings go all wrong of course and the
    pages all end up at the same memory address, thus overwriting each
    other.<br>
    I tried copy.deepcopy (see line 111) but that seems to barf with
    class instances.<br>
    <br>
    Here is my full code:<br>
    <a class="moz-txt-link-freetext" href="http://pastebin.com/txzstwJV">http://pastebin.com/txzstwJV</a><br>
    <br>
    Any ideas?<br>
    <br>
    Cheers and thanks again for this awesome example!<br>
    frank<br>
    <br>
    <br>
    On 4/8/12 6:13 AM, Aaron Richiger wrote:
    <blockquote cite="mid:4F8083CD.3010909@bluewin.ch" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Thanks Juande for pointing this out. Fixed it in the following
      version at pastebin:<br>
      <br>
      Only one page visible:<br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://pastebin.com/kP1rdLHx">http://pastebin.com/kP1rdLHx</a><br>
      <br>
      Good luck with finding the eggs!<br>
      <br>
      <br>
      <blockquote cite="mid:4F807D96.5080909@jdmanjon.net" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        Hi Aaron,<br>
        <br>
        Pretty cool your solutions!<br>
        <br>
        Just a comment about animated_widgets_with_only_one_widget,
        there is an visibility issue when window is resize.<br>
        <br>
        Happy Easter!<br>
        Juande<br>
        <br>
        <blockquote cite="mid:4F805C0D.1020300@bluewin.ch" type="cite">
          <meta content="text/html; charset=ISO-8859-1"
            http-equiv="Content-Type">
          Hello Frank!<br>
          <br>
          I slightly changed my code to your new informations and added
          comments for better understanding;-)! I also changed the
          sorting method to show you a possibility to separe checked
          from unchecked checkboxes. Because I first thought, that
          multiple pages must be visible at once, I created two
          versions, but according to your mail, the second possibility
          will meet your requirements closer I guess. But the
          multi-version might be interesting for others:<br>
          <br>
          Mutliple pages visible:<br>
          <a moz-do-not-send="true" class="moz-txt-link-freetext"
            href="http://pastebin.com/hW0zeL4P">http://pastebin.com/hW0zeL4P</a><br>
          <br>
          Only one page visible:<br>
          <a moz-do-not-send="true" class="moz-txt-link-freetext"
            href="http://pastebin.com/cjn0UuA9">http://pastebin.com/cjn0UuA9</a><br>
          <br>
          Easter-greetings<br>
          <br>
          <br>
          <br>
          <br>
          <br>
          <br>
          <br>
          <br>
          Am 07.04.2012 01:51, schrieb Frank Rueter | OHUfx:
          <blockquote cite="mid:4F7F818C.8020504@ohufx.com" type="cite">
            <meta content="text/html; charset=ISO-8859-1"
              http-equiv="Content-Type">
            I agree, it does seem off, which is why I'm throwing it out
            here to get some ideas on how to tackle this from more
            experienced peeps.<br>
            <br>
            I will try to clarify what I'm after:<br>
            The idea is to have a collection of buttons per category,
            let's say a "page" of buttons. When the category is chosen
            via the buttons on the left, the requested page with buttons
            slides into view pushing the current one out of view. It's
            like an animated toolbox.<br>
            <br>
            I like your suggestion, will investigate.<br>
            <br>
            Cheers,<br>
            frank<br>
            <br>
            <br>
            <br>
            On 6/04/12 11:31 PM, Sebastian Elsner wrote:
            <blockquote cite="mid:4F7ED409.1060708@risefx.com"
              type="cite">
              <meta content="text/html; charset=ISO-8859-1"
                http-equiv="Content-Type">
              This Approach seems really off, Frank. I am not really
              getting what you want to do, maybe you can give us the
              specific purpose of this... What I could imagine is using
              a QScrollArea, which makes a QGridLayout scrollable.<br>
              <br>
              <br>
              Am 06.04.2012 09:13, schrieb Frank Rueter | OHUfx:
              <blockquote cite="mid:4F7E9780.2030809@ohufx.com"
                type="cite">
                <meta content="text/html; charset=ISO-8859-1"
                  http-equiv="Content-Type">
                yes, I think I'm starting to get it, thanks.<br>
                <br>
                So here is a very rough and ugly test using a single
                animated table (feel free to laugh):<br>
                <a moz-do-not-send="true" class="moz-txt-link-freetext"
                  href="http://pastebin.com/PbZ8ismH">http://pastebin.com/PbZ8ismH</a><br>
                <br>
                I am trying to see if it's feasible to stuff all my
                widgets into one big table, then animate the table's
                position so that only the requested column(s) are within
                the view according to which button is pushed on the left
                hand side. Obviously I'd have to hide the headers and
                lines etc. (no idea how to do that yet either).<br>
                <br>
                What do people think how best to approach this? The
                above doesn't feel right and I'd have to do a lot of
                hacking to make this look pretty (though the animation
                is easy to control as it's just one widget). Or should I
                rather create one table per button and move them around
                as a group (I guess I could hide the unwanted tables as
                well then).<br>
                <br>
                Or does anyone have completely different ideas how to
                tackle this? I'm sure there is a way more elegant
                solution.<br>
                I'm  still trying to stick to default QT stuff before I
                dive into Qt Quick and such.<br>
                <br>
                Thanks for all the help and pointers so far!<br>
                <br>
                frank<br>
                <br>
                <br>
                On 4/6/12 6:28 PM, Tibold Kandrai wrote:
                <blockquote cite="mid:4F7E8D20.5000004@gmail.com"
                  type="cite">
                  <meta content="text/html; charset=ISO-8859-1"
                    http-equiv="Content-Type">
                  Hi!<br>
                  <br>
                  Exactly! Instead of QAnimationGroup you have to use <a
                    moz-do-not-send="true"
                    href="http://qt-project.org/doc/qt-4.8/qparallelanimationgroup.html"
                    style="margin-top: 0px; margin-right: 0px;
                    margin-bottom: 0px; margin-left: 0px; padding-top:
                    0px; padding-right: 0px; padding-bottom: 0px;
                    padding-left: 0px; color: rgb(0, 115, 47);
                    text-decoration: none; font-family: Verdana, 'DejaVu
                    Sans', Geneva, sans-serif; font-size: 12px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: 20px; orphans: 2; text-align: left;
                    text-indent: 0px; text-transform: none; white-space:
                    normal; widows: 2; word-spacing: 0px;
                    -webkit-text-size-adjust: auto;
                    -webkit-text-stroke-width: 0px; background-color:
                    rgb(255, 255, 255); ">QParallelAnimationGroup</a><span
                    style="color: rgb(54, 53, 52); font-family: Verdana,
                    'DejaVu Sans', Geneva, sans-serif; font-size: 12px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: 20px; orphans: 2; text-align: left;
                    text-indent: 0px; text-transform: none; white-space:
                    normal; widows: 2; word-spacing: 0px;
                    -webkit-text-size-adjust: auto;
                    -webkit-text-stroke-width: 0px; background-color:
                    rgb(255, 255, 255); display: inline !important;
                    float: none; "><span class="Apple-converted-space">
                      or</span><span class="Apple-converted-space"> </span></span><a
                    moz-do-not-send="true"
                    href="http://qt-project.org/doc/qt-4.8/qsequentialanimationgroup.html"
                    style="margin-top: 0px; margin-right: 0px;
                    margin-bottom: 0px; margin-left: 0px; padding-top:
                    0px; padding-right: 0px; padding-bottom: 0px;
                    padding-left: 0px; color: rgb(0, 115, 47);
                    text-decoration: none; font-family: Verdana, 'DejaVu
                    Sans', Geneva, sans-serif; font-size: 12px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: 20px; orphans: 2; text-align: left;
                    text-indent: 0px; text-transform: none; white-space:
                    normal; widows: 2; word-spacing: 0px;
                    -webkit-text-size-adjust: auto;
                    -webkit-text-stroke-width: 0px; background-color:
                    rgb(255, 255, 255); ">QSequentialAnimationGroup</a><span
                    style="color: rgb(54, 53, 52); font-family: Verdana,
                    'DejaVu Sans', Geneva, sans-serif; font-size: 12px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: 20px; orphans: 2; text-align: left;
                    text-indent: 0px; text-transform: none; white-space:
                    normal; widows: 2; word-spacing: 0px;
                    -webkit-text-size-adjust: auto;
                    -webkit-text-stroke-width: 0px; background-color:
                    rgb(255, 255, 255); display: inline !important;
                    float: none; ">.</span><br>
                  Or you can create your own group by subclassing
                  QAnimationGroup if you have special needs. :)<br>
                  <br>
                  Cheers,<br>
                  Tibold<br>
                  <br>
                  On 06/04/2012 06:45, Frank Rueter | OHUfx wrote:
                  <blockquote cite="mid:4F7E74FE.1020902@ohufx.com"
                    type="cite">
                    <meta content="text/html; charset=ISO-8859-1"
                      http-equiv="Content-Type">
                    I think I found the problem in the fact that it's an
                    abstract class and not meant to be used directly.<br>
                    the joy of learning new stuff....<br>
                    <br>
                    <br>
                    On 4/6/12 4:05 PM, Frank Rueter | OHUfx wrote:
                    <blockquote cite="mid:4F7E6B81.1090105@ohufx.com"
                      type="cite">
                      <meta content="text/html; charset=ISO-8859-1"
                        http-equiv="Content-Type">
                      Thanks again for this tip Tibold. It seems to be
                      what I'm after, though I just discovered that
                      QAnimationGroup doesn't seem to be supported in
                      PySide. I got this error when I tried to create an
                      instance of it:<br>
                      <br>
                      NotImplementedError: 'QAnimationGroup' represents
                      a C++ abstract class and cannot be instantiated<br>
                      <br>
                      <br>
                      I will try and add all widgets to one "page"
                      widget (whatever that may be, I need to find out
                      yet), and then apply the animation to that.<br>
                      Fingers crossed...<br>
                      <br>
                      Cheers,<br>
                      frank<br>
                      <br>
                      <br>
                      On 4/4/12 7:29 PM, Tibold Kandrai wrote:
                      <blockquote cite="mid:4F7BF86E.7050105@gmail.com"
                        type="cite">
                        <pre wrap="">Hey!

Try QtAnimation:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://qt-project.org/doc/qt-4.8/animation-overview.html">http://qt-project.org/doc/qt-4.8/animation-overview.html</a>

I use it with in a QGraphicsWidget, but this should work everywhere AFAIR.

Cheers,
Tibold

On 04/04/2012 06:46, Frank Rueter | OHUfx wrote:
</pre>
                        <blockquote type="cite">
                          <pre wrap="">Hi everyone,

I'm very new to Qt/PySide and am wondering if it's possible to add an 
animation effect to, let's say, QStackedLayout, for when the page 
changes. I guess it'd something similar to the way the AppStore works.

In this example I'd like to see the new button "push" the old button out 
of view when the combobox changes:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://pastebin.com/i5sFgQzE">http://pastebin.com/i5sFgQzE</a>

I'm happy to take a good ol' fashioned RTFM, I'm just having a hard time 
finding the right bit of information out there.

Any help would be greatly appreciated.

Cheers,
frank
_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
                        </blockquote>
                        <br>
                        <fieldset class="mimeAttachmentHeader"></fieldset>
                        <br>
                        <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
                      </blockquote>
                      <br>
                      <fieldset class="mimeAttachmentHeader"></fieldset>
                      <br>
                      <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
                    </blockquote>
                    <br>
                    <fieldset class="mimeAttachmentHeader"></fieldset>
                    <br>
                    <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
                  </blockquote>
                  <br>
                  <pre class="moz-signature" cols="72">-- 
Tibold Kandrai,
CEO @ Dotz Team I/S,
Software developer, consultant</pre>
                  <br>
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <br>
                  <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
                </blockquote>
                <br>
                <fieldset class="mimeAttachmentHeader"></fieldset>
                <br>
                <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
              </blockquote>
              <br>
              <br>
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br>
              <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
            </blockquote>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <br>
            <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
          </blockquote>
          <br>
          <br>
          <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <br>
          <pre wrap="">_______________________________________________
PySide mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
        </blockquote>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
PySide mailing list
<a class="moz-txt-link-abbreviated" href="mailto:PySide@qt-project.org">PySide@qt-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/pyside">http://lists.qt-project.org/mailman/listinfo/pyside</a>
</pre>
    </blockquote>
  </body>
</html>