So things are going a little slower than I’d like with the development of the prototype for iido, still I managed a concerted effort today to make a start.
The first challenge was to update my Qt and PyQt installations, which I have to say (if memory serves me correct) with version 4.4+ is a much easier task than with previous versions. One gottcha you might want to watch out for (possibly Windows OS specific) is forgetting to uninstall the previous version of Qt, this can cause PyQt to try and access the wrong QtCore4.ddl and then your application wont run. Thankfully the solution is simple, just uninstall the previous version of Qt and your set.
Back on subject, once my system was up-to-date I was able to make a reasonable amount of progress. In these early stages I’m still putting inplace quite a bit of framework to support the management of widgets, however with some basic widgets visible and draggable (just using the Qt draggable flag at the moment), I realised that I hadn’t considered the overlapping/z-index of widgets.
To solve this I am putting in place a simple stack style transformation that allows the user to (see the screen-shot),
- Bring the widget to the front
- Send the widget to the back
- Bring the widget up one Z position
- Send the widget down one Z position
However, there are a number of issues still to be resolved,
- The Z position is relevant to all widgets so it might take several clicks for a user to move a widget above a desired widget
- When a user wishes to transform a widget using the transformation regions, the region they require maybe hidden, to resolve this the user would have to move the widget so that the region was visible.
I think the Z position issue can be resolved by building in another couple of transformation options that allow the user to move the widget in front or behind a specific widget (this may eliminate the need for the up/down one option). There might also be some merit in allowing users to specify a specific Z position in which case we would need to make the Z position of all widgets visible. As for hidden transformation regions I am open to suggestions, though I think I may need to have a function model before a decision can be made.
Finally I’d like to credit the famfamfam icon set which I am using whilst developing iido, this is a professional quality set of icons available from www.famfamfam.com under the creative commons license (http://creativecommons.org/licenses/by/3.0). Producing icons is a hugely time consuming process and my sincere thanks goes to the creator Mark James for his efforts and generosity.