Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как для QTextEdit установить относительное маштабирование содержимого?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
xintrea
Пишу кроссплатформенное приложение (PIM-менеджер)

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

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

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

Вызовы типа resize() просто меняют размеры виджета QtextEdit. А нужно понять, как увеличить масштаб содержимого.
Litkevich Yuriy
дак может тебе просто размер шрифта задать, зачем тебе всё увеличивать?
xintrea
Цитата(Litkevich Yuriy @ 7.1.2014, 23:14) *
дак может тебе просто размер шрифта задать, зачем тебе всё увеличивать?


Нет, так нельзя.

Ну вот смотри. У меня есть текст (это запись, которую сделал пользователь в 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. Пользователь пересел на компьютер с Linux с другим экраном и и ситемным DPI и смотрит на эту запись. Он видит более мелкий текст.

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

Вопрос. Как ты предлагаешь менять шрифты, если пользователь сам задал размеры шрифтов, и ожидает, что программа _сама_ не будет их менять? Кроме того, PIM-менеджер хранит несколько тысяч записей. Если будешь менять HTML-код только при открытии записи на просмотр (а его придется менять, потому что пользователь может начать редактировать), то есть не у всех записей, а только у просматриваемых, то получится вообще бардак.

Надо что-о с рендером виджета делать, попытаться увеличить его. Правда, боюсь проблемы в определением позиции курсора сразу появятся.


Litkevich Yuriy
вообще по-моему проблема надуманная.
Если у пользователя DPI разный на разных системах, значит так ему хочется, либо это техническая необходимость. Мелкий экран влечёт за собой необходимость в мелком шрифте.

Но масштабировать можно попробовать перехватывая событие рисования. у QPainter-a есть соответствующий метод. Где-то обсуждалось, у нас или на прогорге, возможность масштабирования всего виджета по аналогии с маловостребованной функцией проигрывателя WinAmp.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.