LINUX.ORG.RU

Как для QTextEdit установить относительное маштабирование содержимого? (увеличить все в QTextEdit на 25%)


0

1

Пишу кроссплатформенное приложение (PIM-менеджер)

Проблема в том, что на разных системах с разными DPI текстовые записи в QTextEdit выглядят по-разному.

- В Windows - достаточно крупно, читать удобно.
- В десктоповом Linux - помельче,
- В Android вообще мелко.

То есть, хочу понять, как изменить общий масштаб всего что рендерится в QTextEdit.

Вызовы типа resize() просто меняют размеры виджета QtextEdit. А нужно понять, как увеличить масштаб содержимого.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 3)

ты используешь QtWidgets на андроид?

Stil ★★★★★
()

В десктоповом Linux - помельче,

Вот тут, к стати, неточность. По-умолчанию (если вы явно не зададите стили оформления) это зависит от настроек оформления вашей DE.

RiseOfDeath ★★★★
()

примени стили setStylesheet, в них явно укажи шрифты. Тогда они будут использоваться вместо дефолтных системных. Визуально размер должен быть одинаков.

Масштабировать содержимое под размер QTextEdit не умеет.

cccian
()
Ответ на: комментарий от RiseOfDeath

По-умолчанию (если вы явно не зададите стили оформления) это зависит от настроек оформления вашей DE.

То есть, каким-то образом можно задать стиль оформления текста, чтобы 14 Pt выглядели как 16 Pt например?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от cccian

Ну вот смотри. У меня есть надпись (это запись, которую сделал пользователь в PIM-менеджере) вот с таким HTML-кодом:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;">

<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Это строка с обычным текстом.</p>

<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt;">Это строка с увеличенным шрифтом.</span></p>

</body></html>

1. Пользователь, находясь под виндой, сам задал для всего документа размер 10pt, и первая строка отображается размером 10pt. Для второй строки пользователь сам указал размер 14pt, и вторая строка отображается размером 14pt.

2. Пользователь пересел на компьютер с другим экраном и и ситемным DPI и смотрит на эту запись. Он видит более мелкий текст.

3. Пользователь открыл эту запись на планшете с Андроид с мелким пикселем, и видит вообще микроскопический текст.

Вопрос. Как ты предлагаешь задать setStylesheet, если пользователь сам задал размеры шрифтов, и ожидает, что программа _сама_ не будет их менять?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

боюсь от разного размера при разном DPI не убежишь в любом случае. Настройка DPI в системе на то и нужна, чтобы сделать объекты большими/маленькими.

Если только программно определять диагональ монитора и DPI и динамически пересчитывать stylesheets - сам делал когда-то такой позор.

cccian
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.