[Interest] Masking an hidden widget (glitch?)
Sensei
senseiwa at gmail.com
Fri Jun 28 16:30:55 CEST 2013
Dear all,
I'm trying to avoid sub-classing a widget, because I don't really need
it. However, I'd like to apply a mask to it, but I'm looking at a weird
behavior.
First of all, I don't know how I can apply a mask on a widget that is
currently being created (and hidden). If I try to mask it, I get the
geometry wrong. I think this is quite normal.
So what I'm doing is to apply a mask whenever I show it.
When I first click on the button that will show the widget, I see the
"frameless" widget you see in the attachment on the left.
Clicking again on the button you see in the picture, hides the widget,
and behold the magic: clicking again shows it as I intended! You can see
it on the right of the attachment.
What am I doing wrong here? My code follows with an ugly patch: showing,
maskin, hiding, and showing again!
I am using Qt 4.8.4 (from homebrew) on OSX 10.8.4.
Cheers!
// Options button is activated
void SubContainer::showFollower()
{
follower_->show();
// Follower width (fixed)
int w = 300;
// Follower height (there is a QVBoxLayout that handles this)
int h = follower_->geometry().height();
// Set the mask to make it cool
QPolygon mask;
mask << QPoint( 0, 10);
mask << QPoint( 10, 10);
mask << QPoint( 20, 0);
mask << QPoint( 30, 10);
mask << QPoint( w, 10);
mask << QPoint( w, h);
mask << QPoint( 0, h);
mask << QPoint( 0, 10);
follower_->setMask(QRegion(mask));
// UGLY AS HELL...
follower_->hide();
follower_->show();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wat.png
Type: image/png
Size: 12457 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130628/dfe0f119/attachment.png>
More information about the Interest
mailing list