Pyqt5:如何在不使用 QFont 的情况下格式化文本?

Pyqt5: How to format text without using QFont?

正如标题所说,我想简单地格式化文本而不使用 QFont()。目前我是这样使用它的:

font = QFont()
font.setBold(True)

label = QLabel()
label.setFont(font)
label.setText("Hello World!")

到目前为止一切顺利。但是如果我想在标签文本中的某个部分加粗,这会很烦人,因为我必须创建一个额外的 QLabel 并使用 setBold() 并将这部分放在正确的位置。有没有办法(例如降价)将标签文本的特定部分加粗?

像那样:

label = QLabel()
label.setText("**Hello** World!")

Qt 将 HTML 的子集用于富文本。这也是默认设置。尝试:

label.setText("<b>Hello</b> World!")

标签文本格式由textFormat 属性控制。默认值为自动,有关可能的值,请参阅 https://doc.qt.io/qt-5/qt.html#TextFormat-enum.

如果您使用最新版本的 Qt(至少 5.14),您也可以按照您的建议使用 Markdown:

label.setTextFormat(Qt.MarkdownText)
label.setText("**Hello** World!")

参考:https://doc.qt.io/qt-5/richtext-html-subset.html