[Interest] Problem sizing a QWidget

Christian Gagneraud chgans at gna.org
Mon Apr 6 23:33:19 CEST 2015


Hi there,

I wrote a simple "HeadsUp" widget class (derived from QWidget), that 
only contains layouts and QLabel. I'm using it in a kind of special way:
This widget overlay a QGraphicsView in the top left corner to display 
context specific information, it has the 
Qt::WA_TransparentForMouseEvents flag and draw itself with 0.5 opacity.

Now, depending of the user action, context and the current tool, I want 
to display various amount of information, for this purpose I'm creating 
all the QLabel and layouts in the constructor, and then simply display 
the one i want using label->setVisible(true|false).
This all work nicely except for one annoying thing: I cannot get the 
main widget to resize itself depending on it's content. I have tried to 
play around with update(), layout->update(), and updateGeometry(), but 
without success.
For now, the only way I found to get the widget to resize correctly 
after enabling/disabling some of its QLabel was to do:
setVisible(false);
setVisible(true);

I know this is not the correct way to go, and is quite inefficient but I 
could not find another way.
Would anyone have some suggestion on how to handle this correctly?
Any help would be greatly appreciated.

Thanks,
Chris



More information about the Interest mailing list