首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何摆脱QDialog中的resize-handle?

摆脱QDialog中的resize-handle,可以通过设置QDialog的Qt::FramelessWindowHint属性来实现。

具体操作如下:

  1. 在QDialog的构造函数中,添加以下代码:
代码语言:c++
复制
setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
  1. 重写QDialog的event()函数,以处理鼠标事件:
代码语言:c++
复制
bool MyDialog::event(QEvent *event)
{
    if (event->type() == QEvent::MouseButtonPress) {
        m_mousePressPos = static_cast<QMouseEvent*>(event)->globalPos();
    }
    return QDialog::event(event);
}
  1. 重写QDialog的mouseMoveEvent()函数,以实现窗口移动:
代码语言:c++
复制
void MyDialog::mouseMoveEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
        move(pos() + (event->globalPos() - m_mousePressPos));
        m_mousePressPos = event->globalPos();
    }
    QDialog::mouseMoveEvent(event);
}

这样,QDialog就可以摆脱resize-handle,并且可以通过鼠标拖动来移动窗口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券