qt中怎么隐藏的ui界面的标题栏,并且鼠标还能拖到ui界面
时间: 2024-03-10 21:44:46 浏览: 90
隐藏标题栏,窗口拖动
在Qt中隐藏UI界面的标题栏,并且鼠标还能拖动UI界面,可以采用以下步骤:
1. 为了隐藏UI界面的标题栏,可以在UI界面的构造函数中添加以下代码:
```
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);
```
其中,`Qt::FramelessWindowHint` 表示隐藏窗口的标题栏,`Qt::WindowSystemMenuHint` 表示在窗口右上角显示系统菜单按钮,点击该按钮可以关闭窗口。
2. 为了能够拖动UI界面,需要在UI界面中实现鼠标按下、鼠标移动、鼠标释放事件:
```
private:
bool m_bPressed;
QPoint m_point;
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
```
3. 在实现的事件函数中添加以下代码:
```
void YourWidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_bPressed = true;
m_point = event->pos();
}
}
void YourWidget::mouseMoveEvent(QMouseEvent *event)
{
if (m_bPressed)
{
move(event->globalPos() - m_point);
}
}
void YourWidget::mouseReleaseEvent(QMouseEvent *event)
{
m_bPressed = false;
}
```
这样就可以隐藏UI界面的标题栏,并且鼠标还能拖动UI界面了。需要注意的是,为了能够让鼠标在窗口外也能够拖动,需要在 `mouseMoveEvent` 中调用 `event->globalPos()` 获取全局坐标来计算窗口位置。
阅读全文