Как узнать плавающую позицию QWidget, когда она отображается

Я пытаюсь переместить плавающий QWidget (флаг Qt::window), в положение, зависящее от его начальной позиции, которое определяется оконным менеджером.

Я не могу найти чистый способ сделать это. Событие первого хода всегда в позиции 0,0; и во время выставочного мероприятия позиция также равна 0,0.

Итак, единственный способ, который я сейчас нашел, это что-то вроде этого:

this->firstMoved = false;
this->myFirstMoved = false;
...
void TabWidget::moveEvent( QMoveEvent* event ) 
{
    if( this->firstMoved )
    {
        if(! this->myFirstMoved )
        {   
            this->myMoveMethod();
            this->myFirstMoved = true;
        }
    }
    else
    {
        this->firstMoved = true;
    }
    Superclass::moveEvent( event );
}

не так чисто, как я бы ожидал. Я использую X11, кстати.

0 ответов

Другие вопросы по тегам