[PyQt] layout management serious problem

think_resist at hushmail.com think_resist at hushmail.com
Sun Oct 14 20:00:38 BST 2007

Hash: SHA1

Hi guys,
slowly slowly I am getting there, thanks to your assistance! There
is one last thing that I need to address:

within my grid layout, I want to place some widgets on a different
position, than the (row, column) system allows me.  (for example
place two buttons together, under the same (row,column)
combination. Can I do this, or do I have to implement a different

On Sat, 13 Oct 2007 00:25:51 +0300 Andreas Pakulat <apaku at gmx.de>
>On 12.10.07 23:31:28, think_resist at hushmail.com wrote:
>> On Fri, 12 Oct 2007 16:05:51 +0300 Mark Summerfield
><mark at qtrac.eu>
>> wrote:
>> >On 2007-10-12, think_resist at hushmail.com wrote:
>> >> Hi all,
>> >>
>> >> I'm completely confused on a simple thing (from what I read):
>> >> layout management
>> >>
>> >> I've written a pyqt hui app that has a Mainwindow, a
>> >centralwidget
>> >> and 15 widgets (textedit, linedit, pushbuttun) that belong to
>> >the
>> >> centralwidget. I've written their size, heigh , position and
>> >> everythig worked so far. When I got the program to run on a
>> >system
>> >> with different resolution, it was...10 times bigger (and 1000
>> >> uglier)! So I've realized i have to use a layout
>> >> read many texts in the web but i don't get the logic behind
>> >> thing. Can't i just create the mainwindow, the size i want,
>> >> create the central widget, create a layout manager, put the
>> >central
>> >> widget on it and then start adding widgets on the central
>> >widget,
>> >> or this is no tgoing to work? Do I have to write down how
>> >> widget will grow or shrink? Very confused, will appreciate
>> >help
>> >> very much
>> >
>> In this case I guess it is not, since my widgets have to be a
>> specific size, definitely not the default ones! Example,
>> QPushbuttons will show some images, so they can't be the size of
>> button.
>If you set the pixmap with setPixmap then the QPushButton will
>itself to the pixmap size. This is the reason for using layouts,
>don't have to care about setting the sizes of your widgets. If
>layout is properly done and your top-level-window is large enough
>will enlarge themselves so they show all their content. Some will
>grow automatically beyond their minimum-needed size (for example a
>lineedit that has free space to its right).
>> >It is almost always a mistake to specify sizes for Qt widgets
>> >(except
>> >for top-level windows).
>> >
>> >Try something like this in your QMainWindow subclass's
>> >
>> >    # create the 15 widgets (no sizes, no positions!)
>> >    grid = QGridLayout() # Or any other layout
>> >    grid.addWidget(myWidget01, row, col) # set row, col
>> >appropriately
>> >    # ...
>> >    grid.addWidget(myWidget15, row, col)
>> >
>> >    centralWidget = QWidget()
>> >    centralWidget.setLayout(grid)
>> >    self.setCentralWidget(centralWidget)
>> in the case of a qpushbutton, this makes the button shrink or
>> only horizontally ! I need to get this grow/shrink vertically as
>> well, plus make it bigger from the initialization (that is
>> it's size). Is this possible with grid layout?
>Everything is possible :) If you want a QPushButton to expand
>beyond its
>needed size then tell it by setting its vertical size policy to
>As far as "make it bigger from initialization", thats not needed
>as I
>said above. If you put an image into the button and the button has
>enough free space (or the layout can shrink another widget) it
>expand automatically.
>I'd suggest to fire up Qt designer and do a couple of tests on a
>QWidget to get a feel for how layouts work and maybe even design
>GUI in designer instead of coding it up. That saves a lot of time
>if you
>ever need to re-arrange things or insert a new subwidget
>Chicken Little was right.
>PyQt mailing list    PyQt at riverbankcomputing.com
Note: This signature can be verified at https://www.hushtools.com/verify
Charset: UTF8
Version: Hush 2.5


More information about the PyQt mailing list