[PyQt] Re: dialogs and extentions
Wim Verhavert
wim.verhavert at gmail.com
Wed Oct 29 16:27:19 GMT 2008
Thanks for your reply Mark. I tried the discussed procedure this
afternoon, and yes this works, but as you said, this will not allow
for user resize, which is a pitty. The older approach did allow for
resize, so I consider this a step back. Do you see any reason why they
want to remove this from the API?
Thanks again, and by the way: your book is great!
Wim
On Wed, Oct 29, 2008 at 4:02 PM, Mark Summerfield <mark at qtrac.eu> wrote:
> On 2008-10-29, Wim Verhavert wrote:
>> I already found out that you can set the orientation with a call to
>> 'setOrientation(Qt.Vertical)'. That solves my problem for now. But
>> while I was searching for a solution I found the following:
>> http://doc.trolltech.com/4.4/qdialog-obsolete.html. There they state
>> that my solution is obsolete and "we strongly advise against using
>> them in new code". But the new method they propose, i.e. simply hide
>> or show the widgets, will not resize my dialog properly (it will only
>> grow and not shrink). I played around with this for a while but
>> couldn't get it to working. Has anybody done it using this new method.
>> Does it shrink properly again? How do you do it?
>
> A technique for doing what you want is to:
> (1) Put all the widgets that belong in the extension inside a QFrame
> that is itself laid out as usual
> (2) In the form's __init__
> (a) hide the frame (thus hiding all the widgets it contains)
> (b) call: self.layout().setSizeConstraint(QLayout.SetFixedSize)
> (c) connect the button widget you're using to hide/show the
> extension's toggled(bool) signal to the frame's setVisible(bool)
> slot.
>
> Using this approach the dialog shrinks or grows as appropriate. The only
> downside is that it is not user resizeable.
>
> An example is in my book "Rapid GUI Programming with Python and Qt", and
> you can download the examples from here:
> http://www.qtrac.eu/pyqtbook.html
>
> The example is:
> eg/chap09/findandreplace.{py,pyw}
> (the .pyw version is all in code the .py version's form is a .ui file)
>
>
> --
> Mark Summerfield, Qtrac Ltd, www.qtrac.eu
> C++, Python, Qt, PyQt - training and consultancy
> "C++ GUI Programming with Qt 4" - ISBN 0132354160
>
>
More information about the PyQt
mailing list