01:pyqt5的安装与测试

1.安装

pip install pyqt5==5.15.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.测试是否安装成功

import sys
from PyQt5.QtWidgets import *
if __name__ == '__main__':
    app = QApplication([])         # 1
    label = QLabel('Hello, PyQt!') # 2
    label.show()                   # 3
    sys.exit(app.exec())           # 4

(#1) 通过**app = QApplication([])**语句实例化一个QApplication对象,该对象的作用是接收一个列表类型的值,其实就是用来接收命令行参数的。由于该程序不会与命令行“打交道”,所以直接传入空列表[]即可。如果程序需要接收命令行参数,则可以传入sys.argv

(#2) 通过**label = QLabel(‘Hello, PyQt!’)**语句实例化一个QLabel控件,我们通常用它来显示文本或图片。

label = QLabel('Hello, PyQt!')
等价于下面,使用setText()方法
label= QLabel()
label.setText('Hello, PyQt!')

(#3) 因为控件默认都是隐藏的,所以要调用show()方法将其显示出来。

(#4) 通过**app.exec()**可以让PyQt程序运行起来,而当用户正常关闭窗口时,app.exec()会返回数值0,将其传给sys.exit(),从而让Python解释器正常退出

在PyQt中,一个控件可以看作一个窗口。

3.在PyQt程序中嵌入HTML代码

创建一个index.html文件,内容如下

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

pyqt5代码使用如下

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

除了可以使用HTML代码来修改文本样式,我们也可以通过PyQt自身提供的类(比如QFont)来实现相同的效果。当然,还可以使用QSS(Qt Style Sheets,Qt样式表)来实现。

4.如何在一个页面中显示多个组件

在pyqt5中一个组件就相当于一个页面,如果我们创建多个组件,就会有多个页面产生

多个组件形成的多个页面

import sys
from PyQt5.QtWidgets import *
 
if __name__ == '__main__':
    app = QApplication([])
    label_1 = QLabel('Label 1')
    label_2 = QLabel('Label 2')
    label_1.show()
    label_2.show()
    sys.exit(app.exec())

会有两个页面,一个label1 一个label2,并且这两个页面组件没有组合在一起

将多个组件形成一个页面

import sys
from PyQt5.QtWidgets import *
class Window(QWidget):                         # 1
    def __init__(self):
        super(Window, self).__init__() #必须有
        label_1 = QLabel('Label 1', self)      #注释2开始
        label_2 = QLabel('Label 2', self)      #注释2结束
if __name__ == '__main__':
    app = QApplication([])
    window = Window()                          #注释3开始
    window.show()                              #注释3结束
    sys.exit(app.exec())

结果是这两个组件形成了一个页面,一个页面内既有label1组件也有label2组件

(#1) 让编写的Window类继承QWidget。可以把QWidget看成一个空白的窗口,而我们要做的就是往里面添加控件。

(#2) 在Window类中,我们实例化两个QLabel控件对象。在该程序中,QLabel除了接收一个字符串,还指明一个父类实例对象self,这样QLabel控件就能够显示在窗口上。

(#3) 在程序入口处,我们实例化Window对象,并调用show()方法将窗口显示出来。

当对一个窗口调用show()方法之后,窗口中的控件会一同显示出来,不必再调用自身的show()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值