先直接上代码
setWindowFlags( Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | windowFlags());
setAttribute(Qt::WA_TranslucentBackground);
第一个函数的第一个枚举数是表示置顶显示窗口,第二个是无边框显示,第三个是保留原来的窗口的一些标志。
第二个函数就是就是部件透明化。
刚好有个分形图的实现用到了这个,给你们看看效果:
另外将mouse的俩个event函数也放在这里,不然生成的无边框不方便移动和关闭,其中具体实现也挺简单的,具体看代码
void Widget::mousePressEvent(QMouseEvent *e)
{
if(e->button() == Qt::LeftButton)
{
p = e->globalPos() - this->frameGeometry().topLeft();
}
if(e->button() == Qt::RightButton)
{
close();
}
}
void Widget::mouseMoveEvent(QMouseEvent *e)
{
if(e->buttons() & Qt::LeftButton)
{
move(e->globalPos() - p);
}
}