Python — PyQt6 制作简易的桌面应用(安装-入门)

目录

一 前言

二 安装环境

1. 编译器

2. 环境库下载

三 代码编写

1. Hello World

效果

2. 练习输入和弹窗功能

效果

四 参考


一 前言

最近,准备学一下python,主要想实现一个mqtt的桌面应用的开发和使用,现在先一步一步去学习,慢慢在上面添加mqtt相关的东西

ok,废话不多说,这些文章主要是记录我自己的开发学习过程,可能有错误,望海涵咯

二 安装环境

1. 编译器

首先我们需要有 PyCharm  和 Python环境

我自己用的版本

 附带一个安装地址

PyCharm 2022安装教程http://www.rjgxgj.com/?s=python


2. 环境库下载

下载好环境之后,我们开始安装需要的库

//更新pip

python -m pip install –upgrade pip

//桌面开发库

pip install PyQt6

概述

PyQt6是一个用于创建桌面应用程序的Python库,它基于Qt v6。Qt是一个跨平台的C++库,用于开发GUI应用程序,以及用于创建多媒体和数据库应用程序的附加库。PyQt6是Qt库的Python绑定,它允许Python程序员使用Qt库来创建具有丰富图形用户界面的应用程序。

主要特点

  1. 跨平台:PyQt6和Qt一样,支持Windows、Linux和Mac OS X等多个操作系统。
  2. 强大的GUI功能:PyQt6提供了创建复杂、功能丰富的图形用户界面所需的所有工具。
  3. 与Qt库的紧密集成:由于PyQt6是Qt库的Python绑定,它提供了对Qt库中所有功能的完全访问,包括网络编程、数据库访问、多线程编程等。
  4. 易于使用:Python是一种解释型语言,其语法简洁明了,易于学习和使用,因此PyQt6也易于使用。
  5. 社区支持:由于Python和Qt都有庞大的用户社区,因此PyQt6也有广泛的社区支持,包括教程、示例代码和第三方插件。

应用场景

PyQt6的应用场景非常广泛,包括但不限于:

  1. 桌面应用程序开发:使用PyQt6,您可以创建具有复杂界面的桌面应用程序,如图像处理软件、科学计算工具、数据库应用程序等。
  2. 多媒体应用程序:PyQt6支持音频和视频处理,因此可以用来创建音乐播放器和视频播放器等多媒体应用程序。
  3. 游戏开发:尽管PyQt6不是专门用于游戏开发的库,但它可以用来创建简单的2D游戏或游戏原型。
  4. 教育和培训:PyQt6可以用于创建教学软件、模拟器和交互式学习工具。
  5. 嵌入式系统:由于PyQt6支持多种操作系统,因此可以用于创建嵌入式系统的用户界面。

//安装 PyInstaller

pip install pyinstaller

作用:打包应用,生成可执行文件

运行以下命令,将你的 Python 脚本打包为可执行文件:

pyinstaller –onefile calculator.py(calculator为自己写的py文件名称)

三 代码编写

1. Hello World

首先最简单的 Hello World 来一个

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel
from PyQt6.QtGui import QIcon, QFont
from PyQt6.QtCore import Qt


# 从QWidget类派生的桌面应用程序窗口类
class MyWindow(QWidget):  # QtWidgets模块:包含应用程序类、窗口类、控件类和组件类
    # 构造函数
    def __init__(self):
        super().__init__()  # 调用基类的构造函数
        self.setWindowTitle('Hello World')  # 设置标题
        # self.setWindowIcon(QIcon('res/qt.png')) # 可以设置图标
        lab = QLabel('Hello World', self)  # 实例化标签
        lab.resize(800, 640)  # 设置标签大小
        lab.setFont(QFont('Arial', 32, QFont.Weight.Bold))  # 设置字体字号
        lab.setAlignment(Qt.AlignmentFlag.AlignCenter)  # 文本在标签内居中
        self.show()  # 显示窗口


if __name__ == '__main__':
    app = QApplication(sys.argv)  # 创建应用程序,接收来自命令行的参数列表
    win = MyWindow()  # 创建窗口,这里初始化的时候不需要QWidget入参
    sys.exit(app.exec())  # 应用程序主循环结束后,调用sys.exit()方法清理现场

效果

2. 练习输入和弹窗功能

import sys
# 需要安装PyQt6模块才能导入以下类
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox


class LoginWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.login_button = None
        self.password_input = None
        self.password_label = None
        self.user_label = None
        self.user_input = None
        self.initUI()

    def initUI(self):
        # 设置窗口标题和大小
        self.setWindowTitle('登录界面')
        self.setGeometry(400, 400, 300, 150)

        # 创建垂直布局
        layout = QVBoxLayout()

        # 创建用户名标签和输入框
        self.user_label = QLabel('用户名:', self)
        self.user_input = QLineEdit(self)

        # 创建密码标签和输入框,并设置为密码模式
        self.password_label = QLabel('密码:', self)
        self.password_input = QLineEdit(self)
        self.password_input.setEchoMode(QLineEdit.EchoMode.Password)  # 设置为密码输入模式

        # 创建登录按钮,并绑定点击事件
        self.login_button = QPushButton('登录', self)
        self.login_button.clicked.connect(self.login)

        # 将组件添加到布局中
        layout.addWidget(self.user_label)
        layout.addWidget(self.user_input)
        layout.addWidget(self.password_label)
        layout.addWidget(self.password_input)
        layout.addWidget(self.login_button)

        # 设置窗口的主布局
        self.setLayout(layout)

    def login(self):
        # 获取用户名和密码
        username = self.user_input.text()
        password = self.password_input.text()

        # 这里可以添加验证逻辑,例如检查用户名和密码是否正确
        # 假设用户名和密码都是 admin 时登录成功
        if username == 'admin' and password == 'admin':
            # 显示登录成功信息
            QMessageBox.information(self, '成功', '登录成功!')
            pass  # 替换为实际的弹窗代码
        else:
            # 显示错误信息
            QMessageBox.warning(self, '错误', '用户名或密码错误!')
            pass  # 替换为实际的弹窗代码


# 主函数
def main():
    app = QApplication(sys.argv)
    login_window = LoginWindow()
    login_window.show()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()

效果

四 参考

Python桌面应用开发之PyQthttps://gitcode.csdn.net/65ea88091a836825ed794124.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6OTE5NzkzLCJleHAiOjE3MzQ5MTY0NjUsImlhdCI6MTczNDMxMTY2NSwidXNlcm5hbWUiOiJoZXJ1aV8yIn0.YRr3u7byPW0xokBIEgb5AmcUZDSO1auYxhBUFc-P3vc&spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~activity-5-131417886-blog-136717828.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~activity-5-131417886-blog-136717828.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=10


作者:阿柒学起来

物联沃分享整理
物联沃-IOTWORD物联网 » Python — PyQt6 制作简易的桌面应用(安装-入门)

发表回复