Название: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Alex Custov от Октябрь 08, 2014, 00:16 Cреда запуска - обыкновенный PC с Win7. Наткнулся на какое-то непонимание того как работает Item::childAt(). А работает он одинаково в 5.2.1 и в 5.3.2, что наводит на мысль, что это сделано сознательно и я что-то недопонимаю. На сцене есть прямоугольник 16x10. Начинаем искать его с помощью childAt() продвигаясь по координате X, и продолжаем поиск после первой найденной точки до тех пор, пока ряд точек не закончится. Сколько вы думаете childAt() насчитает точек? 16? Нет, 17. И вопрос - почему так и что делать.
Код: Код
Название: Re: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Bepec от Октябрь 08, 2014, 01:42 Рамка у window мб?
Название: Re: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Отражение луны от Октябрь 08, 2014, 04:45 Дело в том, что childAt срабатывает, если передать ему непосредственно x объекта, даже если у этого объекта ширина == 0. Вероятно, кто-то где-то использовал >=/<= вместо >/< для определения области объекта. Выглядит как баг, но не совсем понятно, для каких целей может использоваться подобный код.
Название: Re: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Alex Custov от Октябрь 08, 2014, 11:04 Рамка у window мб? Рамки в Rectangle по-умолчанию нет, к тому же в документации написано, что даже если бы она и была, то вот: "The width of the rectangle's border does not affect the geometry of the rectangle itself or its position relative to other items if anchors are used" Название: Re: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Alex Custov от Октябрь 14, 2014, 15:50 Вобщем это баг в Qt, записал им в трекер, поставили приоритет P3.
Название: Re: Вопрос-загадка: сколько точек занимает Rectangle шириной 16? Отправлено: Отражение луны от Октябрь 14, 2014, 21:37 Вобщем это баг в Qt, записал им в трекер, поставили приоритет P3. Как я и писал выше. Чтобы не ждать - легко можно реализовать свой childAt с параметрами и возвратом) |