[PyQt] pyuic4 does not generate alignment for LayoutItem in grid layout?

Phil Thompson phil at riverbankcomputing.com
Sun Jul 28 16:03:21 BST 2013


On Sun, 28 Jul 2013 01:04:52 +0000, "Johoski, Timothy R"
<timothy.r.johoski at intel.com> wrote:
>> 
>> On Tue, 23 Jul 2013 18:26:22 +0000, "Johoski, Timothy R"
>> <timothy.r.johoski at intel.com> wrote:
>> > Hi, in Qt designer, I added a push button into a grid layout, 
>> > right-clicked on that widget and chose Layout Alignment->Top.  Qt
>> designer
>> > correctly shows the button aligned to the top.  However, pyuic4's
>> generated
>> > code does not set the alignment for the button.  I'm thinking pyuic4
>> should
>> > pass the alignment as the last argument to QGridLayout.addWidget?  I 
>> > am currently working around this by explicitly setting the alignment 
>> > on the LayoutItems in my code, but I suspect that pyuic4 should be 
>> > doing this
>> for
>> > me?
>> > 
>> > In the following snapshots, notice that the "Aliases:" and
"Browse..."
>> > widgets are aligned to the top in Qt designer, but in the middle in 
>> > the generated code.
>> > 
>> > Qt designer's view: 
>> > https://www.dropbox.com/s/ex8edlskvh1uep3/DesignerSnapshot.jpg
>> > pyuic4 generated result: 
>> > https://www.dropbox.com/s/8vrhbvjiaw8qlrz/pyuic4PreviewSnapshot.jpg
>> > 
>> > ui file: 
>> > https://www.dropbox.com/s/ynvjn8e4nbtt69o/LayoutItemAlignmentIssue.ui
>> > pyuic4 generated code: 
>> >
https://www.dropbox.com/s/byn51xuj4qd58mq/ui_LayoutItemAlignmentIssue.
>> > py
>> > 
>> > My versions:
>> >   - Windows 7, Linux SLES 10
>> >   - PyQt4-4.10.1
>> >   - Python-2.7.4
>> 
>> 
>> From: Phil Thompson 
>> Sent: Friday, July 26, 2013 1:41 AM
>> 
>> Fixed in tonight's snapshots.
>> 
>> Thanks,
>> Phil
> 
> hi Phil, thanks for the quick fix.  I finally got around to trying it
> out and it works great for cases where I'm setting either Horizontal
> or Vertical layout alignment, but when I set both, pyuic4 encounters
> an error.  I glanced through the diff of the snapshot and made a hacky
> fix in my copy of uiparser.gridPosition() which is now working fine
> for me, you can find it here:
>   https://www.dropbox.com/s/ixe9rrl5dqytn1v/uiparser.gridPosition.py
> 
> I'm a newbie to this stuff, so probably you'll know a better way to
> implement the OR'ing of alignments...

...nope, that's the way to do it.

> In case you'd like a test case, I updated the example ui file here to
set
> both horizontal and vertical alignments:
>   https://www.dropbox.com/s/ynvjn8e4nbtt69o/LayoutItemAlignmentIssue.ui
> 
> Thanks much,
> Tim

Thanks,
Phil


More information about the PyQt mailing list