QT隐藏窗口标题栏
时间: 2023-07-04 20:19:25 浏览: 197
您可以使用以下代码来隐藏QT窗口的标题栏:
```
setWindowFlags(Qt::FramelessWindowHint);
```
这将完全隐藏窗口标题栏和所有窗口按钮,如果您需要在自定义的标题栏中添加自己的控件,可以通过重写 `mousePressEvent`、`mouseMoveEvent` 和 `paintEvent` 事件来实现。例如:
```
void MyWidget::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton) {
m_isPressed = true;
m_startMovePos = event->globalPos() - pos();
}
}
void MyWidget::mouseMoveEvent(QMouseEvent* event)
{
if (m_isPressed) {
move(event->globalPos() - m_startMovePos);
}
}
void MyWidget::mouseReleaseEvent(QMouseEvent* event)
{
m_isPressed = false;
}
void MyWidget::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
// 绘制自定义标题栏
painter.fillRect(rect(), QColor("#333333"));
painter.setPen(QColor("#ffffff"));
painter.drawText(QRect(0, 0, width(), height()), Qt::AlignCenter, windowTitle());
}
```
以上代码实现了自定义的标题栏和窗口拖动效果。
阅读全文