摆脱QDialog中的resize-handle,可以通过设置QDialog的Qt::FramelessWindowHint属性来实现。
具体操作如下:
setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
bool MyDialog::event(QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress) {
m_mousePressPos = static_cast<QMouseEvent*>(event)->globalPos();
}
return QDialog::event(event);
}
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,并且可以通过鼠标拖动来移动窗口。
领取专属 10元无门槛券
手把手带您无忧上云