Положение QToolButton не изменяется при изменении размера или перемещении родительского виджета.

У меня есть класс с именем Titlebar, унаследованный от QWidget. Следующий код входит в конструктор класса Titlebar:

m_queueBtn = new QToolButton;
m_serverToolBar = new QToolBar;
m_serverToolBar->addWidget(m_queueBtn);

QPoint pos = m_queueBtn->pos();

Во время печати m_queueBtn->pos(), он всегда показывает одно и то же значение вместо изменения размера или перемещения.

0

Решение

размерный политик из QToolButton это Fixed/Fixed по умолчанию, изменение размера его родителя не будет иметь никакого эффекта. Также, pos() возвращает координаты, относящиеся к его родительскому виджету, поэтому перемещение родителя не будет иметь никакого эффекта.

Если вы хотите получить Глобальный положение дочернего виджета (т.е. относительно рабочего стола), вы можете использовать mapToGlobal:

QPoint pos = m_queueBtn->mapToGlobal(m_queueBtn->pos());

Или для перевода дочерних координат в положение относительно одного из его виджетов-предков, вы можете использовать МАПТО:

QPoint pos = m_queueBtn->mapTo(ancestor, QPoint(0, 0));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]