我在ui文件中设置了两个dockwidget控件,然后我需要他们可以在我拖动主窗体的时候跟随移动或者隐藏
我现在使用的方法是通过重写moveEvent来实现,但是在程序运行时又出现一个我无法理解的
问题,下面代码中的
dataDock和
reconstructDock是我创建的两个控件
在程序setup的时候会触发
moveEvent,这个时候就出现问题了,
dataDock的move可以正常调用,
不是空指针,但是
reconstructDock显示为
空指针无法设置它的hide()状态
请问这是哪里出了问题?
下面是moveEvent中的代码
- void CloudViewer::moveEvent(QMoveEvent* ev)
- {
- QMainWindow::moveEvent(ev);
- int posX = this->geometry().x();
- int posY = this->geometry().y();
- int mainWindowWidth = this->geometry().width();
- int mainWindowHeight = this->geometry().height();
- ui.dataDock->move(posX + mainWindowWidth - ui.dataDock->geometry().width() - 50, posY + 100);
- if (!ui.reconstructDock->isHidden())
- ui.reconstructDock->hide();
- }