您的位置:首页 > 编程语言 > Qt开发

用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)

2015-12-28 22:59 1091 查看
用Qt可以做出很炫的界面,更多的功能还有待学习^_^!

1、构造函数中需要做的设置:

[cpp] view
plaincopyprint?

this->setWindowOpacity(1);//设置窗体不透明

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);//设置窗体无边框,允许任务栏按钮右键菜单

this->setAttribute(Qt::WA_TranslucentBackground);//设置背景透明



mouseMovePos = QPoint(0, 0);



movie->setFileName(":/new/prefix1/welcome.gif");

ui->label->setMovie(movie);

ui->label->setScaledContents(true);

movie->start();

因为加载的是动态图片,所以要用movie启动动画。

2、鼠标移动和点击事件的设置:

[cpp] view
plaincopyprint?

//鼠标按下并移动则移动不规则窗体

void Menu::mouseMoveEvent(QMouseEvent *event)

{

if(mouseMovePos != QPoint(0, 0))

{

move(geometry().x() + event->globalPos().x() - mouseMovePos.x(),

geometry().y() + event->globalPos().y() - mouseMovePos.y());

mouseMovePos = event->globalPos();

}

}

void Menu::mousePressEvent(QMouseEvent *event)

{

mouseMovePos = event->globalPos();

}

void Menu::mouseReleaseEvent(QMouseEvent *event)

{

mouseMovePos = QPoint(0, 0);

}

3、效果截图:



FROM: http://blog.csdn.net/gtopia/article/details/9666817
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: