Здравствуйте, гость ( Вход | Регистрация )
MishaUA | Дата 5.3.2015, 18:31 |
Проблема, предположительно, оказалась в компоновщике. виджет3->pos() возвращает 0,0, так как в данном случае, компоновщик, установленный на виджет2 расстягивает виджет3 на всю ширину виджет2, поэтому положение и размер виджета3 всегда равен положению и размеру виджета2 (при margin==0). |
|
wiz29 | Дата 5.3.2015, 16:07 |
положение w3 относительно w2 = w3->pos() положение w3 относительно w1 = w2->mapTo(w1, w3->pos()); Если это не работает, то: а) неправильно могут быть заданы родительские виджеты при компоновке. б) можно решить в этом случае через глобальную координатную систему w2->mapFromGlobal(w3->mapToGlobal(QPoint())); или w1->mapFromGlobal(w3->mapToGlobal(QPoint())); |
|
MishaUA | Дата 5.3.2015, 15:33 |
Здравствуйте! Есть виджет1, на нем установлен ещё один виджет (виджет2), на этом виджете компоновщик, в компоновщике ещё один виджет (виджет3). Мне нужно получить положение виджета3 относительно виджета2 или виджета1. Пытался вот так (метоыд вызваются с класса виджета3):
Все 3 функции возвращают QPoint(0, 0). Визуально видно, что виджет3 относительно виджета2 находится не в позиции 0,0 и виджет2 относительно виджета1 тоже не в самом начале, но его положение и могу получать через pos(). |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 12:55 |