正如标题已经说明的那样,我想简单地格式化文本而不使用QFont(). 目前我正在这样使用它:
font = QFont()
font.setBold(True)
label = QLabel()
label.setFont(font)
label.setText("Hello World!")
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。但是,如果我想在标签文本中的某个部分加粗,这会变得非常烦人,因为我必须创建一个额外的部分QLabel并使用setBold()并将该部分放在正确的位置。有没有办法(例如降价)将标签文本的特定部分加粗?
像那样:
label = QLabel()
label.setText("**Hello** World!")
Run Code Online (Sandbox Code Playgroud)
Qt 使用 HTML 的子集来实现富文本。这也是默认设置。尝试:
label.setText("<b>Hello</b> World!")
Run Code Online (Sandbox Code Playgroud)
标签文本格式由属性控制textFormat。默认值为 Auto,有关可能的值,请参阅https://doc.qt.io/qt-5/qt.html#TextFormat-enum。
如果您使用最新版本的 Qt(至少 5.14),您也可以按照您的建议使用 Markdown:
label.setTextFormat(Qt.MarkdownText)
label.setText("**Hello** World!")
Run Code Online (Sandbox Code Playgroud)
参考: https: //doc.qt.io/qt-5/richtext-html-subset.html