上节聊了聊富文本,大概有了一定了解,其实在Pyside6中富文本,常用的就是段落标签<p></p>就足够了;再就是段落标签内嵌<span>标签;今天就用Pyside6写一个简单的案例,效果如下:1)富文本中上标标签<sup>上标文字</sup>;2)富文本中下标标签<sub>下标文字</sub>;from PySide6.QtCore import Qtfrom PySide6.QtWidgets import QWidget, QApplication, QGridLayout, QLabel
class Win(QWidget): def __init__(self): # 初始化并继承父类 super().__init__() # 设置窗口标题 self.setWindowTitle("富文本案例") # 设置窗口尺寸 self.resize(400, 500) # 设置样式表 self.setStyleSheet(""" QWidget { font-size: 19px; border-image:url(./bg01.png) } QLabel { border-image: none; background: transparent; } """) # 创建网格布局 self.main_layout = QGridLayout() # 把网格布局设置给主窗口 self.setLayout(self.main_layout) self.main_layout.setAlignment(Qt.AlignmentFlag.AlignTop) # 设置布局垂直、水平间隙为15 self.main_layout.setSpacing(15) # 当为窗口设置背景图片时设置下面属性为True self.setAttribute(Qt.WidgetAttribute.WA_StyledBackground, True) # 创建setup_01 实例方法 # 在实例方法中创建控件 self.setup_01()
def setup_01(self): # 创建 5 个标签 # 创建标签1,普通文本 self.label_1 = QLabel("这是一行普通文本") # 设置标签1 对齐方式为:居中对齐 self.label_1.setAlignment(Qt.AlignmentFlag.AlignCenter) # 创建标签 2 self.label_2 = QLabel() # 创建标签 3 self.label_3 = QLabel() # 创建标签 4 self.label_4 = QLabel() # 创建标签 5 self.label_5 = QLabel() # 创建标签对应的___富文本内容 text_2 = """ <p style="line-height: 1.5; text-align: center;"> <b>下面是富文本—————————</b><br/> sin<sup>2</sup>α + cos<sup>2</sup>α = 1 </p> """ text_3 = """ <p style="line-height:1.5; text-align: center;"> <b>氢气在氧气中燃烧的化学方程式为:</b><br/> <span style="font-weight: normal; color: red;"> 2H<sub style="">2</sub>+O<sub style="">2</sub>=2H<sub style="">2</sub>O </span> </p> """ text_4 = """ <p style="line-height: 1.5; text-align: center;"> <b>金属铁与硫酸反应的化学方程式为:</b><br/> Fe + H<sub>2</sub>SO<sub>4</sub> = Fe<sub>2</sub>SO<sub>4</sub> + H<sub>2</sub>↑ </p> """ text_5 = """ <p style="line-height: 1.5; text-align: center; font-size: 20px; color: green;"> <span style="font-size: 25px;">悯农</span><br> 锄禾日当午,<br> 汗滴禾下土;<br> 谁知盘中餐,<br> 粒粒皆辛苦。 </p> """ # 为上面4个标签设置————富文本 self.label_2.setText(text_2) self.label_3.setText(text_3) self.label_4.setText(text_4) self.label_5.setText(text_5) # 把上面四个标签添加到网格布局中 self.main_layout.addWidget(self.label_1, 0, 0) self.main_layout.addWidget(self.label_2, 1, 0) self.main_layout.addWidget(self.label_3, 2, 0) self.main_layout.addWidget(self.label_4, 3, 0) self.main_layout.addWidget(self.label_5, 4, 0)
if __name__ == "__main__": import sys app = QApplication(sys.argv) win = Win() win.show() sys.exit(app.exec())
上面有一个标签 <b>加粗</b> 是文字加粗显示;包裹在标签中间的文字会加粗显示。 大家有时间一定要动手自己练一练,其实就是用一些尖括号标签把需要格式化表示的文字包裹起来表示,就这么简单。