crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Позиция виджета относительно родительского, если первый на компоновщике
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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->pos();
виджет3->mapTo(this->parentWidget(), виджет3->pos());
виджет3->mapToParent(виджет3->pos());

Все 3 функции возвращают QPoint(0, 0).
Визуально видно, что виджет3 относительно виджета2 находится не в позиции 0,0 и виджет2 относительно виджета1 тоже не в самом начале, но его положение и могу получать через pos().
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:55