[PySide] sliding widgets into position

Tibold Kandrai kandraitibold at gmail.com
Mon Apr 30 16:49:05 CEST 2012


Hi!

If I think more about it the proper way would be to create a custom
layout which positions your sliding layouts where you need them. :)

Cheers,
Tibold

On 2012-04-30 14:53, Tibold Kandrai wrote:
> Hi!
>
> There I just needed a SIGNAL for the resizeEvent, to be able to resize
> the sliding widgets, so their size will always conform with the window.
>
> Cheers,
> Tibold
>
> On 2012-04-30 00:59, Frank Rueter | OHUfx wrote:
>> Hi Tibold,
>>
>> I'm starting to go through your example code and was wondering why
>> it's necessary to subclass QFrame and re-implement the resizeEvent
>> for "CentralFrame"?!
>> To my novice eye it looks like what you did here should be working
>> for QFrame out of the box, but it doesn't.
>>
>> Would you mind explaining?
>>
>> Cheers and thanks again for this example!
>> frank
>>
>> On 4/27/12 5:47 PM, Tibold Kandrai wrote:
>>> Try this out ;)
>>> http://pastebin.com/a04tvY0U
>>>
>>> Cheers,
>>> Tibold
>>>
>>> On 2012-04-27 02:11, Frank Rueter | OHUfx wrote:
>>>> So I've followed Tibold's advice and sorted out some other ugly
>>>> stuff and am a bit closer.
>>>> My problem now is that, because I am not adding the top and bottom
>>>> frames to the layout anymore (to avoid the middle frame shifting),
>>>> I now can't get the right size and position relative to the centre
>>>> frame.
>>>>
>>>> This is what I have now a bit cleaned up and with comments:
>>>> http://pastebin.com/wrUX5Ce0
>>>>
>>>> By making the middle frame the parent to the top and bottom frames
>>>> they line up to it now in the upper left corner - cool, one step
>>>> forward.
>>>> But I can't get the top and bottom frames to have the same width as
>>>> the parent and also don't know how to control the position properly
>>>> so that the bottom frame is always positioned in the bottom left
>>>> corner of the centre frame.
>>>> The size policy isn't inherited either which I'm a bit clueless a
>>>> bout too.
>>>>
>>>> Sorry for the noob questions but have looked online for tutorials
>>>> on this sort of positioning to no avail.
>>>>
>>>> Thanks in advance for any help!
>>>>
>>>> Cheers,
>>>> frank
>>>>
>>>>
>>>> On 4/27/12 10:08 AM, Frank Rueter | OHUfx wrote:
>>>>> Thanks Tibold, I will have a look at that.
>>>>> I'm still not sure how to figure out the positioning in a
>>>>> procedural way though.
>>>>> Will investigate more.
>>>>>
>>>>> Cheers,
>>>>> frank
>>>>>
>>>>> On 4/26/12 6:53 PM, Tibold Kandrai wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Try to subclass QDockWidget. You will have to set it's geometry
>>>>>> manually. Also if you want the widgets to pop up above the centralWidget
>>>>>> than don't add the dock widgets to any layout. Simply add them with the
>>>>>> main window as their parent, and raise them when you show them.
>>>>>> Using this technique I managed to implement auto hiding widgets like in
>>>>>> Visual Studio. It's not trivial, but it's possible.
>>>>>> Actually if you don't need any of the QDockWIdget's functionality you
>>>>>> can do the same with a QFrame as well. Same logic, override it's
>>>>>> geometry, and don't add them to the grid layout. Adding the widgets to
>>>>>> the grid layout will always push the central widget.
>>>>>>
>>>>>> Cheers,
>>>>>> Tibold
>>>>>>
>>>>>> On 2012-04-26 08:42, Frank Rueter | OHUfx wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> end of day for me and my brain has gone numb, so I'm probably missing 
>>>>>>> the obvious:
>>>>>>>
>>>>>>> I'm trying to create a widget with three areas: top, middle and bottom 
>>>>>>> (using QFrames as place holders for now).
>>>>>>> The middle frame is meant to be visible from the start containing some 
>>>>>>> text and other widgets, when the button is pushed, the top frame is 
>>>>>>> meant to slide down into view and the bottom frame is meant to slide up 
>>>>>>> into view, so that I'm left with a controllable vertical arrangements of 
>>>>>>> those three frames.
>>>>>>> Here is my ugly attempt so far:
>>>>>>> http://pastebin.com/index/bNJ9zeUm
>>>>>>>
>>>>>>> Things do move but I can't control the start and end positions properly 
>>>>>>> and the GridLayout adjusts itself when showing the extra frames, so that 
>>>>>>> the middle frame jumps. I have no idea how to set the size hints etc. to 
>>>>>>> define the start and end positions of the sliding QFrames generically 
>>>>>>> and avoid the jumping middle frame (might have to go with an alternative 
>>>>>>> approach to QGridLayout?!).
>>>>>>>
>>>>>>> Any help would be greatly appreciated.
>>>>>>>
>>>>>>> Frank
>>>>>>> _______________________________________________
>>>>>>> PySide mailing list
>>>>>>> PySide at qt-project.org
>>>>>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> PySide mailing list
>>>>>> PySide at qt-project.org
>>>>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> PySide mailing list
>>>>> PySide at qt-project.org
>>>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>>
>>>>
>>>> _______________________________________________
>>>> PySide mailing list
>>>> PySide at qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>
>>> -- 
>>> Tibold Kandrai,
>>> CEO @ Dotz Team I/S,
>>> Software developer, consultant
>>>
>>>
>>> _______________________________________________
>>> PySide mailing list
>>> PySide at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>
>>
>> _______________________________________________
>> PySide mailing list
>> PySide at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/pyside
>
> -- 
> Tibold Kandrai,
> CEO @ Dotz Team I/S,
> Software developer, consultant

-- 
Tibold Kandrai,
CEO @ Dotz Team I/S,
Software developer, consultant

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20120430/333a85ef/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 552 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20120430/333a85ef/attachment.sig>


More information about the PySide mailing list