Название: Позиционирование и размер текста при изменении размера обьекта Отправлено: SektorCT от Июль 23, 2023, 14:20 Всем привет.
Вопрос опять касаемый обьекта Gauge, а именно теста значений. https://ibb.co/26qMr3S (https://ibb.co/26qMr3S) Как видно каждая надпись расположена на одном углу с мажорным тикмарком, но на растоянии. Колличество символов в надписи может быть разным, а значит и размер будет разным. И теперь мы меняем размер самого обьекта, и надписи все должны быть как бы синхронны друг с другом и растояние и размер. Посоветуйте как лучше расчитать? И самое главное что ведь надо текст посадить по координатам на растоянии(наверное должен быть центром самой надписи) от мажорного тикмарка. Знаю что есть QFontMetrics для работы с текстами и размерами. Название: Re: Позиционирование и размер текста при изменении размера обьекта Отправлено: kambala от Июль 23, 2023, 14:59 позицию наверное проще всего считать в зависимости от «четверти» окружности: например, для угла от 0 до 90 — это нижняя правая четверть (в Qt углы растут по часовой стрелке), там надписи надо выстраивать по их нижней правой границе.
как найти оптимальный размер шрифта: ну это уж тебе надо самому пробовать разные варианты, лучше вместе с дизайнером :) самое банальное: взять два размера окна (например, стандартный и 2х) и определить для них нужный размер шрифта (не факт, что во втором случае будет 2х), на основании этой информации добавить в код формулу расчета размера шрифта. Название: Re: Позиционирование и размер текста при изменении размера обьекта Отправлено: SektorCT от Июль 25, 2023, 17:27 Смотрите, размер шифта дефолтный известен. Но проблема даже не в нем, а в том как текст расположить в qml так чтобы все надписи(может быть 1 символ а может и 4) гармонично сидели. Главное что известен угол для каждого числа и какое то число в качестве отступа от обьекта(в моем случаи тикмарк) до того места где должен быть текст. например 0 и -100, ширина разная.
Есть например 5 чисел(0, 25,50,75, 100). Для них число символов и в пикселях такое Код: 1 7 Код: QFont font("times", 10); Но вот что с данными этими делать пока не могу придумать. Вот какое положение надписям хочу реализовать. https://ibb.co/pR9bHJc (https://ibb.co/pR9bHJc) Название: Re: Позиционирование и размер текста при изменении размера обьекта Отправлено: SektorCT от Июль 26, 2023, 10:08 позицию наверное проще всего считать в зависимости от «четверти» окружности: например, для угла от 0 до 90 — это нижняя правая четверть (в Qt углы растут по часовой стрелке), там надписи надо выстраивать по их нижней правой границе. как найти оптимальный размер шрифта: ну это уж тебе надо самому пробовать разные варианты, лучше вместе с дизайнером :) самое банальное: взять два размера окна (например, стандартный и 2х) и определить для них нужный размер шрифта (не факт, что во втором случае будет 2х), на основании этой информации добавить в код формулу расчета размера шрифта. Я наверное уловил смысл про разделенеи на четверти, но как можно выстаивать по четвертям? Может вы могли бы показать каким то примером? на данный момент я выстраиваю таким путем, высчитываю размер в пикселях и беру угол, потом нахожу центер и помещаю на угол наклона. Код: Repeater Название: Re: Позиционирование и размер текста при изменении размера обьекта Отправлено: kambala от Август 16, 2023, 16:54 написал бы как решил в итоге :)
Название: Re: Позиционирование и размер текста при изменении размера обьекта Отправлено: SektorCT от Сентябрь 07, 2023, 18:53 написал бы как решил в итоге :) Да извеняюсь, уехал в отпуск и не успел поделится. Сам код qml вот такого вида Код: Repeater В С++ я расчитываю только размер пикселей, получаю угол для каждой цыфры, делаю в процентах отступ в зависимости от размера Код: QFontMetrics fm(m_FontText); И по сути все. |