Pyqt5:如何在不使用 QFont 的情况下格式化文本?
正如标题已经告诉我们的,我想简单地格式化文本而不使用 QFont() 。目前我正在这样使用它:
font = QFont()
font.setBold(True)
label = QLabel()
label.setFont(font)
label.setText("Hello World!")
到目前为止一切都很好。但是,如果我想将标签文本中的某个部分加粗,就会变得非常烦人,因为我必须创建一个额外的 QLabel
并使用 setBold()
和将这部分放到正确的位置。有没有办法(例如降价)将标签文本的特定部分加粗?
像这样:
label = QLabel()
label.setText("**Hello** World!")
Well as the title already tells, I want to simply format a text without using QFont()
. At the moment I'm using it like that:
font = QFont()
font.setBold(True)
label = QLabel()
label.setFont(font)
label.setText("Hello World!")
So far so good. But if I want to have a certain part in a text of a label bold, it gets quite annoying, because I have to create an extra QLabel
and use setBold()
and put this part into the right position. Is there a way (e.g. markdown) to bold a certain part of a text of a label?
Like that:
label = QLabel()
label.setText("**Hello** World!")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Qt 使用 HTML 的子集来实现富文本。这也是默认设置。尝试:
标签文本格式由
textFormat
属性控制。默认值为 Auto,有关可能的值,请参阅 https://doc.qt .io/qt-5/qt.html#TextFormat-enum。如果您使用最新版本的 Qt(至少 5.14),您还可以按照您的建议使用 Markdown:
参考:https://doc.qt.io/qt-5/richtext-html-subset.html
Qt uses a subset of HTML for rich text. This is also the default setting. Try:
The label text format is controlled by the
textFormat
property. The default is Auto, for possible values see https://doc.qt.io/qt-5/qt.html#TextFormat-enum.If you use a recent version of Qt (at least 5.14) you can also use Markdown as you suggested:
Reference: https://doc.qt.io/qt-5/richtext-html-subset.html