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!")
正如标题所说,我想简单地格式化文本而不使用 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!")