先直接上代碼
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);
}
}