1.2.2 在PyQt程序中嵌入HTML代码

我们可以直接在字符串中加上HTML代码来修改文本样式,示例代码1-2通过HTML的<h1>标签修改文本大小。

示例代码1-2

import sys
from PyQt5.QtWidgets import *
 
if __name__ == '__main__':
    app = QApplication([])
    label = QLabel()
    label.setText('<h1>Hello, PyQt!</h1>')
    label.show()
    sys.exit(app.exec())

运行结果如图1-6所示。

图1-6 加入HTML代码1

也可以在读取HTML文件后,调用setText()方法将其内容显示到窗口上。新建一个名为test.html的文件,并在其中输入以下内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello, PyQt!</title>
</head>
<body>
    <h1>I love PyQt.</h1>
</body>
</html>

现在我们在示例代码1-2的基础上进行修改,将文件中的HTML代码内容显示到窗口上,详见示例代码1-3。

示例代码1-3

import sys
from PyQt5.QtWidgets import *
 
if __name__ == '__main__':
    app = QApplication([])
    label = QLabel()
    with open('test.html', 'r', encoding='utf-8') as f:
        label.setText(f.read())
    label.show()
    sys.exit(app.exec())

运行结果如图1-7所示。

图1-7 加入HTML代码2

除了可以使用HTML代码来修改文本样式,我们也可以通过PyQt自身提供的类(比如QFont)来实现相同的效果。当然,还可以使用QSS(Qt Style Sheets,Qt样式表)来实现。这两种方法在后续章节都会讲解到。