新增视频播放mdk内核
This commit is contained in:
@@ -89,7 +89,8 @@ void FramelessDialog::doResizeEvent(QEvent *event)
|
||||
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
|
||||
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::Resize) {
|
||||
int type = event->type();
|
||||
if (type == QEvent::Resize) {
|
||||
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
|
||||
int width = this->width();
|
||||
int height = this->height();
|
||||
@@ -111,7 +112,7 @@ void FramelessDialog::doResizeEvent(QEvent *event)
|
||||
pressedRect[6] = QRect(0, height - padding, padding, padding);
|
||||
//右下角描点区域
|
||||
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
|
||||
} else if (event->type() == QEvent::HoverMove) {
|
||||
} else if (type == QEvent::HoverMove) {
|
||||
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
|
||||
QHoverEvent *hoverEvent = (QHoverEvent *)event;
|
||||
QPoint point = hoverEvent->pos();
|
||||
@@ -196,7 +197,7 @@ void FramelessDialog::doResizeEvent(QEvent *event)
|
||||
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
|
||||
}
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseButtonPress) {
|
||||
} else if (type == QEvent::MouseButtonPress) {
|
||||
//记住鼠标按下的坐标+窗体区域
|
||||
QMouseEvent *mouseEvent = (QMouseEvent *)event;
|
||||
mousePoint = mouseEvent->pos();
|
||||
@@ -222,9 +223,9 @@ void FramelessDialog::doResizeEvent(QEvent *event)
|
||||
} else {
|
||||
mousePressed = true;
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseMove) {
|
||||
} else if (type == QEvent::MouseMove) {
|
||||
//改成用HoverMove识别
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
} else if (type == QEvent::MouseButtonRelease) {
|
||||
//恢复所有
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
mousePressed = false;
|
||||
@@ -237,8 +238,9 @@ void FramelessDialog::doResizeEvent(QEvent *event)
|
||||
|
||||
bool FramelessDialog::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
int type = event->type();
|
||||
if (watched == this) {
|
||||
if (event->type() == QEvent::WindowStateChange) {
|
||||
if (type == QEvent::WindowStateChange) {
|
||||
doWindowStateChange(event);
|
||||
} else {
|
||||
doResizeEvent(event);
|
||||
@@ -247,9 +249,9 @@ bool FramelessDialog::eventFilter(QObject *watched, QEvent *event)
|
||||
//双击标题栏发出双击信号给主界面
|
||||
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::MouseButtonDblClick) {
|
||||
if (type == QEvent::MouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -89,7 +89,8 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
|
||||
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
|
||||
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::Resize) {
|
||||
int type = event->type();
|
||||
if (type == QEvent::Resize) {
|
||||
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
|
||||
int width = this->width();
|
||||
int height = this->height();
|
||||
@@ -111,7 +112,7 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
|
||||
pressedRect[6] = QRect(0, height - padding, padding, padding);
|
||||
//右下角描点区域
|
||||
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
|
||||
} else if (event->type() == QEvent::HoverMove) {
|
||||
} else if (type == QEvent::HoverMove) {
|
||||
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
|
||||
QHoverEvent *hoverEvent = (QHoverEvent *)event;
|
||||
QPoint point = hoverEvent->pos();
|
||||
@@ -196,7 +197,7 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
|
||||
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
|
||||
}
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseButtonPress) {
|
||||
} else if (type == QEvent::MouseButtonPress) {
|
||||
//记住鼠标按下的坐标+窗体区域
|
||||
QMouseEvent *mouseEvent = (QMouseEvent *)event;
|
||||
mousePoint = mouseEvent->pos();
|
||||
@@ -222,9 +223,9 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
|
||||
} else {
|
||||
mousePressed = true;
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseMove) {
|
||||
} else if (type == QEvent::MouseMove) {
|
||||
//改成用HoverMove识别
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
} else if (type == QEvent::MouseButtonRelease) {
|
||||
//恢复所有
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
mousePressed = false;
|
||||
@@ -237,8 +238,9 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
|
||||
|
||||
bool FramelessMainWindow::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
int type = event->type();
|
||||
if (watched == this) {
|
||||
if (event->type() == QEvent::WindowStateChange) {
|
||||
if (type == QEvent::WindowStateChange) {
|
||||
doWindowStateChange(event);
|
||||
} else {
|
||||
doResizeEvent(event);
|
||||
@@ -247,9 +249,9 @@ bool FramelessMainWindow::eventFilter(QObject *watched, QEvent *event)
|
||||
//双击标题栏发出双击信号给主界面
|
||||
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::MouseButtonDblClick) {
|
||||
if (type == QEvent::MouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -89,7 +89,8 @@ void FramelessWidget::doResizeEvent(QEvent *event)
|
||||
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
|
||||
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::Resize) {
|
||||
int type = event->type();
|
||||
if (type == QEvent::Resize) {
|
||||
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
|
||||
int width = this->width();
|
||||
int height = this->height();
|
||||
@@ -111,7 +112,7 @@ void FramelessWidget::doResizeEvent(QEvent *event)
|
||||
pressedRect[6] = QRect(0, height - padding, padding, padding);
|
||||
//右下角描点区域
|
||||
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
|
||||
} else if (event->type() == QEvent::HoverMove) {
|
||||
} else if (type == QEvent::HoverMove) {
|
||||
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
|
||||
QHoverEvent *hoverEvent = (QHoverEvent *)event;
|
||||
QPoint point = hoverEvent->pos();
|
||||
@@ -196,7 +197,7 @@ void FramelessWidget::doResizeEvent(QEvent *event)
|
||||
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
|
||||
}
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseButtonPress) {
|
||||
} else if (type == QEvent::MouseButtonPress) {
|
||||
//记住鼠标按下的坐标+窗体区域
|
||||
QMouseEvent *mouseEvent = (QMouseEvent *)event;
|
||||
mousePoint = mouseEvent->pos();
|
||||
@@ -222,9 +223,9 @@ void FramelessWidget::doResizeEvent(QEvent *event)
|
||||
} else {
|
||||
mousePressed = true;
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseMove) {
|
||||
} else if (type == QEvent::MouseMove) {
|
||||
//改成用HoverMove识别
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
} else if (type == QEvent::MouseButtonRelease) {
|
||||
//恢复所有
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
mousePressed = false;
|
||||
@@ -237,8 +238,9 @@ void FramelessWidget::doResizeEvent(QEvent *event)
|
||||
|
||||
bool FramelessWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
int type = event->type();
|
||||
if (watched == this) {
|
||||
if (event->type() == QEvent::WindowStateChange) {
|
||||
if (type == QEvent::WindowStateChange) {
|
||||
doWindowStateChange(event);
|
||||
} else {
|
||||
doResizeEvent(event);
|
||||
@@ -247,9 +249,9 @@ bool FramelessWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
//双击标题栏发出双击信号给主界面
|
||||
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
|
||||
#ifndef Q_OS_WIN
|
||||
if (event->type() == QEvent::MouseButtonDblClick) {
|
||||
if (type == QEvent::MouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
|
||||
Q_EMIT titleDblClick();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -27,7 +27,8 @@ FramelessWidget2::FramelessWidget2(QObject *parent) : QObject(parent)
|
||||
bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (widget && watched == widget) {
|
||||
if (event->type() == QEvent::WindowStateChange) {
|
||||
int type = event->type();
|
||||
if (type == QEvent::WindowStateChange) {
|
||||
//解决mac系统上无边框最小化失效的bug
|
||||
#ifdef Q_OS_MACOS
|
||||
if (widget->windowState() & Qt::WindowMinimized) {
|
||||
@@ -41,7 +42,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (event->type() == QEvent::Resize) {
|
||||
} else if (type == QEvent::Resize) {
|
||||
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
|
||||
int width = widget->width();
|
||||
int height = widget->height();
|
||||
@@ -63,7 +64,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
|
||||
pressedRect[6] = QRect(0, height - padding, padding, padding);
|
||||
//右下角描点区域
|
||||
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
|
||||
} else if (event->type() == QEvent::HoverMove) {
|
||||
} else if (type == QEvent::HoverMove) {
|
||||
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
|
||||
QHoverEvent *hoverEvent = (QHoverEvent *)event;
|
||||
QPoint point = hoverEvent->pos();
|
||||
@@ -148,7 +149,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
|
||||
widget->setGeometry(widget->x(), widget->y(), resizeW, resizeH);
|
||||
}
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseButtonPress) {
|
||||
} else if (type == QEvent::MouseButtonPress) {
|
||||
//记住鼠标按下的坐标+窗体区域
|
||||
QMouseEvent *mouseEvent = (QMouseEvent *)event;
|
||||
mousePoint = mouseEvent->pos();
|
||||
@@ -174,9 +175,9 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
|
||||
} else {
|
||||
mousePressed = true;
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseMove) {
|
||||
} else if (type == QEvent::MouseMove) {
|
||||
//改成用HoverMove识别
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
} else if (type == QEvent::MouseButtonRelease) {
|
||||
//恢复所有
|
||||
widget->setCursor(Qt::ArrowCursor);
|
||||
mousePressed = false;
|
||||
|
||||
@@ -54,17 +54,18 @@ bool GifWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
static QPoint mousePoint;
|
||||
static bool mousePressed = false;
|
||||
|
||||
int type = event->type();
|
||||
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
|
||||
if (mouseEvent->type() == QEvent::MouseButtonPress) {
|
||||
if (type == QEvent::MouseButtonPress) {
|
||||
if (mouseEvent->button() == Qt::LeftButton) {
|
||||
mousePressed = true;
|
||||
mousePoint = mouseEvent->globalPos() - this->pos();
|
||||
return true;
|
||||
}
|
||||
} else if (mouseEvent->type() == QEvent::MouseButtonRelease) {
|
||||
} else if (type == QEvent::MouseButtonRelease) {
|
||||
mousePressed = false;
|
||||
return true;
|
||||
} else if (mouseEvent->type() == QEvent::MouseMove) {
|
||||
} else if (type == QEvent::MouseMove) {
|
||||
if (mousePressed) {
|
||||
this->move(mouseEvent->globalPos() - mousePoint);
|
||||
return true;
|
||||
|
||||
@@ -78,18 +78,19 @@ void MaskWidget::showEvent(QShowEvent *)
|
||||
|
||||
bool MaskWidget::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::Show) {
|
||||
int type = event->type();
|
||||
if (type == QEvent::Show) {
|
||||
if (dialogNames.contains(obj->objectName())) {
|
||||
this->show();
|
||||
this->activateWindow();
|
||||
QWidget *w = (QWidget *)obj;
|
||||
w->activateWindow();
|
||||
}
|
||||
} else if (event->type() == QEvent::Hide) {
|
||||
} else if (type == QEvent::Hide) {
|
||||
if (dialogNames.contains(obj->objectName())) {
|
||||
this->hide();
|
||||
}
|
||||
} else if (event->type() == QEvent::WindowActivate) {
|
||||
} else if (type == QEvent::WindowActivate) {
|
||||
//当主窗体激活时,同时激活遮罩层
|
||||
if (mainWidget) {
|
||||
if (obj->objectName() == mainWidget->objectName()) {
|
||||
|
||||
@@ -14,8 +14,9 @@ MoveWidget::MoveWidget(QObject *parent) : QObject(parent)
|
||||
bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (widget && watched == widget) {
|
||||
int type = event->type();
|
||||
QMouseEvent *mouseEvent = (QMouseEvent *)event;
|
||||
if (mouseEvent->type() == QEvent::MouseButtonPress) {
|
||||
if (type == QEvent::MouseButtonPress) {
|
||||
//如果限定了只能鼠标左键拖动则判断当前是否是鼠标左键
|
||||
if (leftButton && mouseEvent->button() != Qt::LeftButton) {
|
||||
return false;
|
||||
@@ -26,7 +27,7 @@ bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
lastPoint = mouseEvent->pos();
|
||||
pressed = true;
|
||||
}
|
||||
} else if (mouseEvent->type() == QEvent::MouseMove && pressed) {
|
||||
} else if (type == QEvent::MouseMove && pressed) {
|
||||
//计算坐标偏移值,调用move函数移动过去
|
||||
int offsetX = mouseEvent->pos().x() - lastPoint.x();
|
||||
int offsetY = mouseEvent->pos().y() - lastPoint.y();
|
||||
@@ -47,7 +48,7 @@ bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
}
|
||||
|
||||
widget->move(x, y);
|
||||
} else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) {
|
||||
} else if (type == QEvent::MouseButtonRelease && pressed) {
|
||||
pressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user