Qt移动QWidget而不触发moveEvent方法?

时间:2015-08-19 15:35:35

标签: c++ qt

我正在尝试将窗口小部件设置为最初创建它的位置并且永远不会移动。我这样做是通过在重写的moveEvent方法中将其位置设置为旧位置。问题是,移动它的唯一方法是...调用move,触发另一个moveEvent,进入无限循环。有没有办法直接设置位置并绕过任何事件?

1 个答案:

答案 0 :(得分:1)

bool m_firstTimeMove; // class member for QMyWidget

QMyWidget::QMyWidget(QObject* parent) : QWidget(parent),
   m_firstTimeMove(true)
{
}

void QMyWidget::moveEvent(QMoveEvent* event)
{
   if (m_firstTimeMove)
   {
      onlyForFirstTimeMove();   // do one time move action
      m_firstTimeMove = false;
   }
   event->accept();
}