Как изменить размер элемента после трансформации Scale?
В QML есть такая проблема. Если элемент смасштабировать, то по-сути
смасштабируется только его графическое представление, а, например его
свойства width и height останутся прежними. С этим я более-менее
разобрался:
https://webhamster.ru/mytetrashare/index/mtb0/1516351538jyd6u91xdf
Но
все же хотелось бы, чтобы при масштабировании размеры объекта width и
height тоже менялись. Я, например, сейчас пытаюсь разместить
смасштабированные (уменьшенные) объекты на GridLayout, и не могу это
толком сделать, потому что их width и height остались прежними. И
GridLayout резервирует под них место так, как если бы они были не
смасштабированы. Те же самые проблемы возникают и при выравнивании:
выравниваются несмасштабированные прямоугольники элементов.
Я
пытаюсь задать width и height вручную, с учетом масштаба, но тогда
происходит что-то странное: некоторые подэлементы исчезают, MouseArea,
развернутое на весь элемент, не обрабатывается.
В общем, никак не могу решить эту проблему.

Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Unknown akadamn
- 24 января 2025 г. 17:14
Qt - Тест 001. Сигналы и слоты
- Результат:84баллов,
- Очки рейтинга4
- Unknown akadamn
- 24 января 2025 г. 16:22
Qt - Тест 001. Сигналы и слоты
- Результат:42баллов,
- Очки рейтинга-8


Я с GridLayout не работал, но возможно здесь ответ на часть ваших вопросов http://doc.qt.io/qt-5/qtquicklayouts-overview.html
Проникся я вашей проблемой... Вот то ли я тупой, то ли разработчик ленивый. В общем сделал GridLayout из трех прямоугольников в одну строку. При клике на любой из них он должен уменьшиться в масштабе и вращаться вокруг своего центра. Вот код:
Вообще, я бы отказался от GridLayout вовсе. Тут скорее больше подойдёт абсолютное позиционирование с расчётом размеров от ширины и высоты экрана или области размещения объектов.
Как я понимаю топикстартер пишет что-то вроде просмоторщика изображений. Когда начнётся обработка Drug and Drop этих изображений, то тут вообще веселуха будет. Все те решения, которые мне попадались с GridLayout больше на костыли похожи были, хотя может в последних версиях Qt что-то и изменилось и я не в курсе актуальных изменений.