Больший размер шрифта CSS в редакторе на основе QTextEdit

#python #css #pyqt4 #pyside #rich-text-editor

#python #css #pyqt4 #pyside #rich-text-editor

Вопрос:

Мы создаем редактор на QTextEdit основе. Мы используем QtGui.QComboBox in QtGui.QTextEdit для выбора размеров шрифта. Мы используем следующие размеры CSS: small , normal , large x-large и xx-large . Наибольший размер составляет около 24 точек. Есть ли какой-нибудь способ увеличить его до 48 пунктов? (При сохранении возможности масштабирования с помощью Ctrl колесика мыши.)

Комментарии:

1. Используйте pt или px вместо относительных размеров шрифта CSS.

2. Тогда CTRL вращение колесика мыши не увеличивает масштаб.

Ответ №1:

Свойство CSS font-size поддерживает либо абсолютный размер (указанный в точках или пикселях), либо именованный относительный размер («маленький», «средний», «большой», «x-large» или «xx-large»).

Относительные размеры соответствуют размеру шрифта документа, что означает размер шрифта, установленный в body теге для документов с форматированным текстом. Если размер шрифта документа не был установлен явно, он будет унаследован от шрифта по умолчанию для виджета (если он у него есть) или шрифта приложения по умолчанию.

Итак, если для шрифта документа установлено значение 10pt:

 font = QFont(self.widget.font())
font.setPointSize(10)
widget.setFont(font)
  

Затем относительные шрифты будут рассчитаны следующим образом:

  • small : 0,8 * 10 = 8pt
  • medium : 1.0 * 10 = 10pt
  • large : 1.2 * 10 = 12pt
  • x-large : 1.5 * 10 = 15pt
  • xx-large : 2.0 * 10 = 20pt

Это означает, что единственным способом получить xx-large значение 48pt было бы установить размер шрифта документа равным 24pt (что довольно бесполезно, но это так).

Обратите внимание, что масштабирование выполняется путем изменения размера шрифта документа. Таким образом, установка абсолютного размера шрифта для блока текста предотвратит его увеличение.

Комментарии:

1. Спасибо, что разъяснили этот момент. К сожалению, это все еще оставляет нас без возможности создавать шрифты большего размера. Возможно ли переопределить таблицу стилей, чтобы увеличить множители? Или, возможно, мы можем определить больше таблиц стилей? Или есть какой-либо другой способ изменить размеры шрифта, не жертвуя возможностью масштабирования документа?

2. @VeetVivarto. Множители жестко запрограммированы в QTextCharFormat реализации, которая также используется для форматирования big , small , h1 , h2 и т.д. html-тегов. Поэтому трудно найти способ обойти это, особенно если вы также хотите увеличить масштаб документа. Вы действительно сталкиваетесь с теми же проблемами, что и разработчики веб-страниц, только это еще хуже, потому что QTextEdit поддерживает только ограниченное подмножество html и css. Какой редактор вы создаете? Рассматривали ли вы возможность использования QScintilla вместо этого?