[Interest] Custom-shaped QDialog or similar
Sensei
senseiwa at gmail.com
Wed May 22 10:29:18 CEST 2013
Thanks to both of you for your hints.
I am now modifying the Window Flags example, in order to have it my way.
For this proof of concept, I am trying to do two things:
- Have the custom-shaped window
- Move the window where I want: beside the "Quit" button.
However, something's wrong here. I am using QRegion to define the shape,
and moving it with move().
If I set the window type to Qt::Tool I still have the window title, but
I can see the clipping working just fine. When I set the type to
Qt::Tooltip or use Qt::FramelessWindowHint, the whole window disappears!
Moreover, I am unable to move it where I want. I know it is some kind of
coordinates misunderstanding here...
Can anyone enlighten me? Code follows.
Cheers!
void ControllerWindow::updatePreview()
{
//...
QPoint b = quitButton->mapToGlobal(quitButton->pos());
pos.setX(b.x() + quitButton->width() / 2);
pos.setY(b.y() + quitButton->height() / 2);
previewWindow->move(quitButton->mapToParent(pos));
}
PreviewWindow::PreviewWindow(QWidget *parent) : QWidget(parent)
{
//...
QVector<QPoint> pts;
pts.push_back(QPoint(0, 10));
pts.push_back(QPoint(36, 10));
pts.push_back(QPoint(36+10, 0));
pts.push_back(QPoint(36+20, 10));
pts.push_back(QPoint(296, 10));
pts.push_back(QPoint(296, 266));
pts.push_back(QPoint(0, 266));
QPolygon p(pts);
setMask(QRegion(pts));
}
More information about the Interest
mailing list