Название: Ручное позиционирование виджетов Отправлено: uriel от Март 04, 2009, 08:08 Суть проблемы примерно в следующем: есть некий виджет, который уже отображается на экране. Скажем, по нажатию на него, требуется отобразить ещё один (пусть он будет аналогом tooltip'а для простоты). Как я понял, точные размеры виджета определяются только после того, как он станет видимым и управление вернётся в очередь сообщений Qt, чтобы отработать resize, move и так далее.
Грубо говоря, когда виджет только создан и помещён в layout, метод size().width() возвращает 100, sizeHint().width() - 29, а уже после отрисовки размер оказывается равен 49. В итоге, если я хочу отцентировать этот новый виджет относительно первого, то приходится сначала отобразить его, а потом уже выполнить нужные расчёты и перемещения. И всё бы ничего, но появляется эффект "мерцания", когда виджет сначала появляется где-то в левом месте и потом ловко перескакивает в нужное. Это я себе просто жизнь усложняю или есть какое-то более изящное решение подобной задачи? :) Название: Re: Ручное позиционирование виджетов Отправлено: registrationfedser87 от Март 04, 2009, 09:08 Если подойдёт,то можно использовать QDialog, он сам центрируется по родительскому виджету
Название: Re: Ручное позиционирование виджетов Отправлено: uriel от Март 04, 2009, 13:01 Задача центрирования была приведена просто в качестве примера. На деле там всё немного сложнее. :)
Название: Re: Ручное позиционирование виджетов Отправлено: registrationfedser87 от Март 04, 2009, 14:08 может быть нужно вызывать метод виджета adjustSize() перед определением размеров?
Название: Re: Ручное позиционирование виджетов Отправлено: uriel от Март 04, 2009, 17:27 Тьфу ж ты блин. ;)
Премного благодарен. |