Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
Jan. 6, 2019, 5:06 p.m.

Размер шрифта через 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);

Благодарю заранее.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
4

Привет.

Вообще у QFontMetrics нужно бы использовать метод width(), чтобы забрать ширину текста

QFontMetrics(outline_font).width(CircleTimer::time().toString());

И ещё один момент. а ты уверен, что в QFont находится правильный шрифт?
Раз уж на то пошло, то его нужно брать из QPainter, а не придумывать самому.

QFontMetrics(painter->font()).width(CircleTimer::time().toString());
0

По поводу ширины текста, я это и делаю через metrics.horizontalAdvance(time). Шрифт я взял из примера в оф описании на сайте. Так что как понимаю должен быть шрифт правильный.

0

Так что как понимаю должен быть шрифт правильный.

да хрен то там. Если у тебя ОС Ubuntu, то и шрифт будет в приложении Ubuntu, с какого перепуга там будет "times"?

0

Шрифт нужно брать из painter,

painter->font()

либо предварительно устанавливать его в painter

QFont outline_font("times", 19);
painter->setFont(outline_font);
painter->setPen("black");
painter->drawText(x, y , time);
0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Last comments
March 19, 2019, 12:57 p.m.
AlexanderBardin

Добрый день. А проверить работоспособность локально как-то можно не указывая реальнй сайт (еще в разработке)
March 16, 2019, 1:55 p.m.
Дмитрий

Спасибо за статью. Давно итересует следующий вопрос: с помощью переменных QMAKE_TARGET_COMPANYQMAKE_TARGET_PRODUCTQMAKE_TARGET_DESCRIPTIONможно задать свойства компилируемой программы, о...
JS
March 12, 2019, 10:19 a.m.
Jean Stefanovich

Большое спасибо за разъяснения!
March 12, 2019, 10:04 a.m.
Евгений Легоцкой

Hello, In fact, this functionality or is not implemented, or is not documented. I'm not sure. But I think, that it should be implemented in Text QML Type. Because of we can write text in...
March 12, 2019, 9:51 a.m.
Евгений Легоцкой

Да вы правы. На самом деле проще через QSqlQueryModel, сколько не пытался использовать эти дженерики типо QSqlTableModel и QSqlRelationalTableModel, то всегда упирался в какие-то их ограничени...
Now discuss on the forum
March 19, 2019, 1:43 p.m.
AlexanderBardin

Очень интересная тема. У вас случайно нет статьи с полным циклом интреграции нескольких языков?Так сказать с нуля, что нужно, какие пакеты ставить, что куда писать. Тут вроде информации не ма...
March 17, 2019, 10:47 p.m.
Евгений Легоцкой

Добрый день. Вот, нашлось у меня немного времени. Делается это через шаблон проектирования наблюдатель. GraphKS_mfvSlup.zip
ЧГ
March 15, 2019, 9:52 p.m.
Чарльз Грин

спасибо, попробую, отпишусь
m
March 15, 2019, 7:41 p.m.
mihamuz

Сори догадался)
n
March 12, 2019, 4:57 p.m.
newbie.works.with.QT

Большооооое спасибо!!!!!Не передать как я вам благодарен, спасибо что всегда отзываетесь.Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не пр...
Join us in social networks

For registered users on the site there is a minimum amount of advertising