Skip to content

PyQt中类的基本应用

一、基本框架

1. 程序源码

python
import sys
from PyQt5.QtWidgets import QApplication,QWidget

class MyWindow(QWidget): # 定义一个类,类名为MyWindow,并继承QWidget类
    def __init__(self): # 定义MyWindow类的构造方法
        super(MyWindow,self).__init__()
    # 使用super方法找到MyWindow的父类(超类)QWidget,并调用父类的初始化方法进行初始化

    pass

if __name__=='__main__':
    # 获取参数列表
    app = QApplication(sys.argv)

    # 创建自定义的w窗口
    w = MyWindow()

    # 显示窗口
    w.show()

    # 循环运行程序,直到人为退出
    app.exec()

2. 源码讲解

QQ20250612-210520

二、整体基础实战

  • 隐藏原始标题栏,通过自定义的窗口类做一个类似爬虫工具的窗口

1. 程序源码

python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon

class MyWindow(QWidget): # 定义一个类,类名为MyWindow,并继承QWidget类
    def __init__(self): # 定义MyWindow类的构造方法
        super(MyWindow,self).__init__()
    # 使用super方法找到MyWindow的父类(超类)QWidget,并调用父类的初始化方法进行初始化

        # 设置隐藏默认标题栏、窗口标题、窗口大小、窗口位置、窗口图标
        self.setWindowFlag(Qt.FramelessWindowHint)
        self.setWindowTitle("Qt爬虫浏览器")
        self.resize(800,600)
        self.move(850,400)
        self.setWindowIcon(QIcon('安卓端浏览器打开.ico'))

        # 创建并设置窗口名称标签
        label = QLabel("Qt爬虫浏览器",self)
        label.setGeometry(10,10,100,20)

        # 创建并设置爬取地址输入框
        edit_search = QLineEdit(self)
        edit_search.setPlaceholderText("请输入您要爬取的网站地址")
        edit_search.setGeometry(115,10,400,20)

        # 创建并设置开始爬取按钮
        btn_start = QPushButton("开始爬取",self)
        btn_start.setGeometry(520,5,100,30)

        # 创建并设置结束爬取按钮
        btn_end = QPushButton('停止爬取',self)
        btn_end.setGeometry(625,5,100,30)

        # 创建并设置退出按钮
        btn_quit = QPushButton('退出',self)
        btn_quit.setGeometry(730,5,50,30)

        # 创建并设置爬取内容显示框(目前只讲解了文本框,故此处先使用文本框代替)
        edit_result = QLineEdit(self)
        edit_result.setPlaceholderText("这是爬取结果1...这是爬取结果2...")
        edit_result.setGeometry(50,50,700,300)

        # 创建并设置保存按钮
        btn_save = QPushButton('保存数据到数据库',self)
        btn_save.setGeometry(300,400,200,30)

        # 创建并设置清空按钮
        btn_clear = QPushButton('清空爬取的数据',self)
        btn_clear.setGeometry(300,460,200,30)

if __name__=='__main__':
    # 获取参数列表
    app = QApplication(sys.argv)

    # 创建自定义的w窗口
    w = MyWindow()

    # 显示窗口
    w.show()

    # 循环运行程序,直到人为退出
    app.exec()

2. 源码讲解

QQ20250612-224618

QQ20250612-225557

3. 其它说明

  • 如果窗口默认标题栏被设置成隐藏,但进行了窗口名称、窗口图标等设置想要查看其效果,目前所学的方法无法显示到窗口上,但可以在运行时查看任务栏上显示的图标进行效果查看

QQ20250612-230340