PyQt5入门教程——简单实现一个登录界面

一、工具的安装

1.在PyCharm里面安装PyQt5

python 复制代码
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
python 复制代码
pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

2.配置Qt Designer

我们在PyCharm当中,添加外部工具,这个名称就填QtDesigner,这个大小写不重要。

程序要找到自己下载的designer.exe的位置:C:\Users\86152\AppData\Local\Programs\Python\Python311\Lib\site-packages\qt5_applications\Qt\bin

一般是在你下载的Python的\Lib\site-packages\qt5_applications\Qt\bin

然后工作目录必须填

复制代码
$FileDir$

接下来我们添加PyUIC

程序则要找到我们的Python.exe

实参固定为

复制代码
-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

工作目录也为

复制代码
$FileDir$

设置好以后,我们在PyCharm当中就可以通过外部工具使用

二、简单介绍一下这两个工具的功能

2.1QtDesigner介绍

QtDesigner是可视化拖拽开发图形,我们可以不用手写界面代码,直接拖按钮、文本框、布局,设计窗口或者对话框来保存为 .ui 文件。

2.2,简单设计一个登录系统

我们先新建一个窗体

这里左边是工具栏,右边是属性栏

先拖两个label,作为账号密码

然后拖两个line edit作为我们输入的数字

最后弄两个push button作为登录和注册按钮

然后把我们需要的信息填入

然后这时候我们发现,这个排版非常杂乱,有没有什么方法能,有的有的。这两个地方是排版的地方。

我们先将账号和密码水平排列,然后在右边是编辑属性,可以调间距

同理我们可以把这个通过水平数值排列整齐了,也可以把他们整体放大一下

然后就可以保存为.ui文件了

这个.ui文件是类似于HTML文件的

我们可以通过之前安装的PyUIC将这个.ui改写成.py文件

然后运行就会发现,没有输出这个窗口。

我们想要调用这个窗口则需要我们单独写一个程序进行调用

python 复制代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
# 导入你生成的界面类
from denlu import Ui_MainWindow  # 注意:你的ui转出来的文件名必须是 denlu.py


class MyLoginWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)  # 加载你设计的界面
        self.setWindowTitle("登录系统")

        # ------------ 绑定按钮点击事件 ------------
        # 登录按钮
        self.pushButton.clicked.connect(self.check_login)
        # 注册按钮(你可以后面再写功能)
        self.pushButton_2.clicked.connect(self.register_click)

    # 登录逻辑
    def check_login(self):
        # 获取你界面上的输入框内容
        username = self.lineEdit.text()       # 账号输入框
        password = self.lineEdit_2.text()     # 密码输入框

        # 简单验证
        if username == "admin" and password == "123456":
            QMessageBox.information(self, "成功", "登录成功!")
            self.close()
        else:
            QMessageBox.warning(self, "失败", "账号或密码错误")

    # 注册按钮点击
    def register_click(self):
        QMessageBox.information(self, "提示", "注册功能还没实现~")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyLoginWindow()
    window.show()
    sys.exit(app.exec_())

以上就是PyQt5的简单入门教程

相关推荐
aningx6 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位8 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
对象存储与RustFS8 小时前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
骑着蜗牛撵大象32710 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
众壹新能源科技10 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..10 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划10 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason10 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特10 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A10 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络