Размер шрифта через QFont
Всем привет.
Сталкнулся с такой непоняткой. Рисую через QPainter текст, представляет собою время. И вместо того чтоыб при изменении размера в коде и изменении размера шрифта, у меня текст сползает в сторону.
Не понимаю что происходит. Может кто посодействует пониманию.
На скринах первый это там где я задал 25
А на этом скрине размер задан 19
И сам код
- QFont outline_font("times", 19);
- QFontMetrics metrics(outline_font);
- auto time = CircleTimer::time().toString();
- auto x = (width() - (static_cast<double>(metrics.horizontalAdvance(time))) / 2) / 2;
- auto y = (height() + (metrics.height() / 2)) / 2;
- painter->setPen("black");
- painter->drawText(x, y , time);
Благодарю заранее.
2
94
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 ноября 2024 г. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Сейчас обсуждают на форуме
- МА1 апреля 2025 г. 16:210ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Привет.
Вообще у QFontMetrics нужно бы использовать метод width(), чтобы забрать ширину текста
И ещё один момент. а ты уверен, что в QFont находится правильный шрифт?
Раз уж на то пошло, то его нужно брать из QPainter, а не придумывать самому.
По поводу ширины текста, я это и делаю через metrics.horizontalAdvance(time).
Шрифт я взял из примера в оф описании на сайте. Так что как понимаю должен быть шрифт правильный.
да хрен то там. Если у тебя ОС Ubuntu, то и шрифт будет в приложении Ubuntu, с какого перепуга там будет "times"?
Шрифт нужно брать из painter,
либо предварительно устанавливать его в painter