中国建设劳动学会是假网站吗,装修公司网站dede模板,建设网站有哪些目的是什么意思,什么网站简单在Qt框架中#xff0c;要实现一个无标题栏、半透明、置顶#xff08;悬浮#xff09;的窗口#xff0c;需要一些特定的设置和技巧。废话不多说#xff0c;下面我将以DrawClient软件为例#xff0c;介绍一下实现这种效果的四个要点。
要点一#xff1a;移除标题栏#…在Qt框架中要实现一个无标题栏、半透明、置顶悬浮的窗口需要一些特定的设置和技巧。废话不多说下面我将以DrawClient软件为例介绍一下实现这种效果的四个要点。
要点一移除标题栏去除关闭、最小化、最大化按钮
在窗口的构造函数中设置窗口的样式在强调一下一定要找构造函数中设置否则有些平台可能无效
setWindowFlags(Qt::FramelessWindowHint);要点二实现半透明效果窗口半透明而非控件半透明
setWindowOpacity(0.5);要点三实现置顶悬浮效果
加入Qt::WindowStaysOnTopHint标志
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);要点四实现窗口移动
重写mousePressEvent()、mouseMoveEvent()和mouseReleaseEvent()
void mousePressEvent(QMouseEvent* event) override
{if (event-button() Qt::LeftButton){m_isDragging true;m_dragPos event-globalPos() - QWidget::pos();}QWidget::mousePressEvent(event);
}void mouseMoveEvent(QMouseEvent* event) override
{if (m_isDragging){if (!QWidget::isMaximized() !QWidget::isFullScreen()) { QWidget::move(event-globalPos() - m_dragPos); }}QWidget::mouseMoveEvent(event);
}void mouseReleaseEvent(QMouseEvent* event) override
{m_isDragging false;QWidget::mouseReleaseEvent(event);
}效果图 相关项目https://gitee.com/xktesla/draw-client/releases