Qt 设置Qt::FramelessWindowHint
后界面无法移动问题的一种解决方案
从别人代码中摘出来的
效果
![](https://i-blog.csdnimg.cn/blog_migrate/d2b7304e2ba6af50c1edd1e78e7634c3.gif)
思路
1. 写一个单例
2. 重写事件过滤器
1. 判断鼠标按下事件、鼠标释放事件、鼠标移动事件
2. 移动相应界面
3. qApp 注册过滤器
代码
.h
#ifndef APPINIT_H
#define APPINIT_H
#include <QObject>
#include <QMutex>
class AppInit : public QObject
{
Q_OBJECT
public:
explicit AppInit(QObject *parent = 0);
static AppInit *Instance() {
static QMutex mutex;
if (!self) {
QMutexLocker locker(&mutex);
if (!self) {
self = new AppInit;
}
}