【问题标题】:Larger CSS font sizes in QTextEdit-based editor基于 QTextEdit 的编辑器中较大的 CSS 字体大小
【发布时间】:2011-11-10 04:00:17
【问题描述】:

我们正在制作基于QTextEdit 的编辑器。 我们在QtGui.QTextEdit 中使用QtGui.QComboBox 来选择字体大小。 我们使用的 CSS 尺寸是:smallnormallargex-largexx-large。 最大的尺寸约为 24 点。 有什么办法让48分吗? (同时保持使用 Ctrl-鼠标滚轮进行缩放的能力。)

【问题讨论】:

  • 使用 ptpx 代替相对的 CSS 字体大小。
  • 然后 CTRL + 鼠标滚轮不会缩放。

标签: python css pyqt4 pyside rich-text-editor


【解决方案1】:

CSS font-size property 支持绝对大小(以点或像素为单位)或命名的相对大小(“小”、“中”、“大”、“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(这没什么用,但确实如此)。

请注意,缩放是通过更改文档字体大小来实现的。因此,在文本块上设置绝对字体大小将防止其被缩放。

【讨论】:

  • 感谢您澄清这一点。不幸的是,这仍然使我们无法制作更大的字体。是否可以重新定义样式表以增加乘数?或者我们可以定义更多的样式表?或者有没有其他方法可以在不牺牲缩放文档的能力的情况下更改字体大小?
  • @VeetVivarto。乘数被硬编码到 QTextCharFormat 实现中,它也用于格式化 bigsmallh1h2 等 html 标签。所以很难找到解决这个问题的方法,特别是如果您还想要文档缩放。您确实遇到了与网页设计师相同的问题 - 只是更糟,因为QTextEdit 仅支持有限的 html 和 css 子集。您正在构建什么样的编辑器?您是否考虑过改用QScintilla
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2014-09-17
  • 2013-06-30
  • 2021-11-04
  • 2020-11-29
  • 1970-01-01
  • 2016-04-16
相关资源
最近更新 更多