Реализация по умолчанию QTextEdit.zoomIn/Out
просто меняет pointSize
базового шрифта для редактирования текста.
Метод, используемый в примере для изменения размера шрифта, переносит выбранное слово в span
тег и использует встроенный CSS, чтобы установить для свойства font-size
фиксированное значение.Это означает, что когда текстовое редактирование впоследствии будет увеличено, будет затронут только неизмененный текст.
Эту проблему можно было бы решить, используя относительные размеры шрифта.Тем не менее, похоже, что поддерживается только ограниченное подмножество css properties , поэтому можно установить только неточные значения, такие как small
, large
и т. Д.
Это можно реализоватьв примере внесем следующие изменения:
# Font Size
self.comboSize = QtGui.QComboBox(self.toolBar)
self.toolBar.addWidget(self.comboSize)
self.comboSize.addItem('small')
self.comboSize.addItem('medium')
self.comboSize.addItem('large')
self.comboSize.addItem('x-large')
self.comboSize.addItem('xx-large')
self.comboSize.setCurrentIndex(1)
self.comboSize.activated[int].connect(self.textSize)
def textSize(self, size):
fmt = QtGui.QTextCharFormat()
fmt.setProperty(QtGui.QTextFormat.FontSizeAdjustment, size - 1)
self.mergeFormatOnWordOrSelection(fmt)