QT c++ 去除界面边框
时间: 2023-07-19 15:41:45 浏览: 196
你可以通过设置窗口的 `Qt::FramelessWindowHint` 标志来去除界面边框,具体操作如下:
```cpp
// 去除窗口边框
setWindowFlags(Qt::FramelessWindowHint);
```
此外,你还需要重写窗口的 `mousePressEvent`、`mouseMoveEvent` 和 `mouseReleaseEvent` 函数,以实现窗口的拖动。具体实现方式可以参考如下代码:
```cpp
// 鼠标按下事件
void Widget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
m_dragging = true;
m_dragPosition = event->globalPos() - frameGeometry().topLeft();
event->accept();
}
}
// 鼠标移动事件
void Widget::mouseMoveEvent(QMouseEvent *event)
{
if (m_dragging && (event->buttons() & Qt::LeftButton)) {
move(event->globalPos() - m_dragPosition);
event->accept();
}
}
// 鼠标释放事件
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event);
m_dragging = false;
}
```
其中,`m_dragging` 和 `m_dragPosition` 分别表示是否正在拖拽窗口和拖拽起始位置,可以定义为类成员变量。
阅读全文