不知道为什么,在设置无边框之后,从最小化恢复窗口,窗口会向下偏移一段距离,看起来似乎是为系统的标题栏准备的。
但是我们已经设置无边框了,所以它就会空出一块地方来。
如图所示:
解决的方法是在设置最小化之前保存窗口位置,从最小化恢复之后将窗口移动到原来的位置。
connect(main, &MainWidget::min, this, [=](){
normal_pos = this->pos();
this->showMinimized();
});
void MainFrame::changeEvent(QEvent *event)
{
if(event->type() == QEvent::WindowStateChange)
{
//修复从最小化恢复窗口会向下偏移的问题
QWindowStateChangeEvent *stateEvent = static_cast<QWindowStateChangeEvent*>(event);
if(stateEvent->oldState() & Qt::WindowMinimized) // 从最小化恢复
{
this->move(normal_pos);
// qDebug()<<"normal";
}
}
}