用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
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
相关文章推荐
- Qt 不规则窗体编程
- 【实例】Qt创建不规则窗体
- Windows下OpenCV+QT开发环境配置
- Qt 出现了 Qt error LNK2019: 无法解析的外部符号 "public: __thiscall 怎么解决
- 【QT相关】Image Viewer Example
- Qt Creator 窗体控件自适应窗口大小布局
- Qt 2D绘图
- 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
- 隐藏鼠标指针
- Qtcreator中常用快捷键总结
- 【QT相关】Qt Widgets Module
- 【QT相关】类头文件解读、QT编辑模式、读取text文本
- Qt中设定tablewidget的选定范围
- Mac下usb转串口Qt开发
- QT编程应该注意的几点技巧
- Qt学习(13)
- 虚拟机下打开摄像头(Linux ubuntu 2.6.32-122-rtai+QT+opencv)
- 【QT相关】QT+opencv环境配置
- Qt 对话框的使用
- QT连接Oracle数据库配置文档