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