如何更改PyQt4中QTextEdit内部所有内容的fontsize?

Chr*_*ung 4 pyqt pyqt4 qtextedit python-2.7 qtextcursor

我有一个QTextEdit通过使用它的内容被编程的内容QTextEdit.textCursor.

我的计划是让用户检查填充的信息QTextEdit并在必要时进行编辑,然后再使用打印成PDF文件QPrinter.

但是,我想在用户进行编辑之前更改整个内容的字体大小.我不会使用多种字体大小,所以我只需要为内容设置一个字体大小.

我尝试QTextEdit过在QTextEdit.setFontSize(16)操作前后使用,但似乎没有任何效果.

如何更改内容的字体大小textCursor

ekh*_*oro 10

QTextEdit.setFontPointSize处理当前格式的功能.如果要一次更改所有字体大小,则需要设置基本字体的大小,如下所示:

    font = QtGui.QFont()
    font.setPointSize(16)
    self.editor.setFont(font)
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以使用zoomInzoomOut插槽更改基本字体的相对大小.这些插槽的实现改变了基本字体大小,其方式与上面所示完全相同.


Che*_*byl 7

我发现完全解决方案.你应该:

  • 记住当前 textCursor
  • 呼叫 selectAll
  • 呼叫 setFontPointSize
  • 要求setTextCursor明确选择

在C++中,它可以使用以下代码完成(它只是示例,但它解决了您的问题):

QTextCursor cursor = ui->textEdit->textCursor();
ui->textEdit->selectAll();
ui->textEdit->setFontPointSize(32);
ui->textEdit->setTextCursor( cursor );
Run Code Online (Sandbox Code Playgroud)