最近在学习GUI设计,分享做的一些小项目。
这篇文我们讲一下如何制作一个简单的登录界面。

目录

  • 一、效果图
  • 二、简述制作过程:
  • 三、源码及材料:
    • 1、源码:
    • 2、图片素材:

一、效果图

如下:

二、简述制作过程:

1、QtDesigner里绘制UI界面并设置属性
布局根据个人喜好,部件颜色、字体、背景属性在styleSheet里设置。

2、材料转换(将.ui文件转.py,.qrc文件转_rc.py)
通过PyUIC和PyRcc即可完成。

这个没安装的可以参考这篇文章:
Pycharm 中配置pyqt5.designer,pyuic,pyrcc

3、对部件自定义函数并关联
源码注释的很详细,有不理解的地方欢迎在文末加我的vx讨论。

三、源码及材料:

1、源码:

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'denglujiemian2.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtGui import QPixmap,QIconclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(708, 761)MainWindow.setStyleSheet("")self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setStyleSheet("background-image: url(:/png/beijing1.png);")self.centralwidget.setObjectName("centralwidget")
#################################################################################################
# pushButton的属性
#################################################################################################self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(540, 540, 131, 51))self.pushButton.setStyleSheet("font: 9pt \"造字工房悦黑体验版细体\";\n"
"image: url(:/ico/login.ico);\n"
"background-color: rgb(255, 255, 0);\n"
"color: rgb(255, 0, 0);")self.pushButton.setObjectName("pushButton")self.pushButton.setIcon(QIcon(QPixmap("login.ico")))
#################################################################################################
#pushButton_2的属性
#################################################################################################self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_2.setGeometry(QtCore.QRect(540, 610, 131, 51))self.pushButton_2.setStyleSheet("font: 9pt \"造字工房悦黑体验版细体\";\n"
"image: url(:/ico/exit.ico);\n"
"color: rgb(255, 0, 0);\n"
"background-color: rgb(255, 255, 0);")self.pushButton_2.setObjectName("pushButton_2")self.pushButton_2.setIcon(QIcon(QPixmap("exit.ico")))
#################################################################################################
# label的属性
#################################################################################################self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(450, 389, 51, 31))self.label.setStyleSheet("font: 9pt \"造字工房悦黑体验版细体\";\n"
"color: rgb(255, 255, 0);")self.label.setObjectName("label")
#################################################################################################
#label_2的属性
#################################################################################################self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(460, 440, 41, 21))self.label_2.setStyleSheet("font: 9pt \"造字工房悦黑体验版细体\";\n"
"color: rgb(255, 255, 0);")self.label_2.setObjectName("label_2")
#################################################################################################
#lineEdit的属性
#################################################################################################self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit.setGeometry(QtCore.QRect(510, 390, 181, 31))self.lineEdit.setStyleSheet("color: rgb(255, 255, 0);")self.lineEdit.setObjectName("lineEdit")
#################################################################################################
# lineEdit_2的属性
#################################################################################################self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_2.setGeometry(QtCore.QRect(510, 430, 181, 31))self.lineEdit_2.setStyleSheet("color: rgb(255, 255, 0);")self.lineEdit_2.setObjectName("lineEdit_2")self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))
#################################################################################################
# radioButton的属性
#################################################################################################self.radioButton = QtWidgets.QRadioButton(self.centralwidget)self.radioButton.setGeometry(QtCore.QRect(480, 480, 81, 19))self.radioButton.setStyleSheet("color: rgb(255, 255, 0);\n"
"font: 9pt \"造字工房悦黑体验版细体\";")self.radioButton.setObjectName("radioButton")self.radioButton.setChecked(True)
#################################################################################################
#radioButton_2的属性
#################################################################################################self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)self.radioButton_2.setGeometry(QtCore.QRect(590, 480, 91, 19))self.radioButton_2.setStyleSheet("font: 9pt \"造字工房悦黑体验版细体\";\n"
"color: rgb(255, 255, 0);")self.radioButton_2.setObjectName("radioButton_2")
#################################################################################################MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 708, 26))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)
#################################################################################################
#将pushButton和pushButton_2通过clicked连接自定义函数login()
#################################################################################################self.retranslateUi(MainWindow)self.pushButton.clicked.connect(self.login)self.pushButton_2.clicked.connect(MainWindow.close)
#################################################################################################
#将radioButton和radioButton_2通过clicked连接自定义函数select()
#################################################################################################self.radioButton.toggled.connect(self.select)QtCore.QMetaObject.connectSlotsByName(MainWindow)self.radioButton_2.clicked.connect(MainWindow.show)QtCore.QMetaObject.connectSlotsByName(MainWindow)
#################################################################################################
#自定义函数,点击登录时弹出一个提示窗口,显示用户名和密码
#################################################################################################def login(self):from PyQt5.QtWidgets import QMessageBoxQMessageBox.information(MainWindow, "登录信息","用户名: " + self.lineEdit.text() + "密码: " + self.lineEdit_2.text(), QMessageBox.Ok)#################################################################################################
#自定义函数,选择不同身份登录时弹出一个提示窗口,显示登录身份
#################################################################################################def select(self):if self.radioButton.isChecked():QMessageBox.information(MainWindow,"提示","您选择的是 管理员 登录",QMessageBox.Ok)elif self.radioButton_2.isChecked():QMessageBox.information(MainWindow,"提示","您选择的是 普通用户 登录",QMessageBox.Ok)
#################################################################################################
#翻译函数
#################################################################################################def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "登录系统"))self.pushButton.setText(_translate("MainWindow", "登录"))self.pushButton_2.setText(_translate("MainWindow", "退出"))self.label.setText(_translate("MainWindow", "用户名:"))self.label_2.setText(_translate("MainWindow", "密码:"))self.radioButton.setText(_translate("MainWindow", "管理员"))self.radioButton_2.setText(_translate("MainWindow", "普通用户"))
#################################################################################################
#窗口函数
#################################################################################################
import dlbj1_rc
import sys
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow() # 创建窗体对象ui = Ui_MainWindow() # 创建PyQt设计的窗体对象ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置MainWindow.show() # 显示窗体sys.exit(app.exec_()) # 程序关闭时退出进程

2、图片素材:

百度网盘链接:
图片素材
提取码:1024

喜欢的话记得三连哦,欢迎评论。

PyQt5制作一个简单的登录界面相关推荐

  1. 一对一直播源码,实现一个简单的登录界面

    一对一直播源码,实现一个简单的登录界面 1.html <!DOCTYPE html> <html lang="en"> <head><me ...

  2. JSP写一个简单的登录界面

    系列文章目录 JSP实现不链接数据库的简单登录功能实现 文章目录 系列文章目录 前言 一.jsp是什么? 二.使用到的页面代码 1.login.jsp 2.index.jsp 3.LoginServl ...

  3. tornado完成一个简单的登录界面/图片的上传

    # 对程序中可能经常变化的值应该提取到配置文件中 # 创建文件夹在文件夹下创建file,充当配置文件 from tornado.httpserver import HTTPServer from to ...

  4. java做个简单的登录界面_java一个简单的登录界面制作

    展开全部 import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax. ...

  5. 利用Java GUI,结合Java Socket,Java多线程,服务器,制作一个简单的具有界面的多用户实时聊天程序(从GUI,到Socket,到多线程,到服务器,项目级别详细教程)

    目录 规划 Java GUI设计 Java Socket Java 服务器 利用 IntelliJ IDEA软件为例 首先,我们应当了解,像运行在两台电脑或者手机终端这样的程序一般是没有办法直接相互发 ...

  6. java swing 弹出登录框_用JavaSwing制作一个简单的登录框

    我就懒的一条一条注释了,之前已经都讲过了,直接上代码了. 劝一下大家,打代码不要直接复制,这样是永远都学习不会的,要自己动手敲,自己要有思维. 我这个只供你们自己参考吧,请不要盲目复制,要学习精髓,这 ...

  7. java实现一个简单的登录界面

    虽然现在已经基本都不用java去写界面了,但是还是想去试试,不是情怀而是态度 public class Test {public static void main(String[] args) {JF ...

  8. 一个简单的登录界面设计

    第一步:设计数据库 这一步  比较简单 不做说明    看截图 第二步:创建实体User类 第三步:创建login.jsp文件 第四步:再创建注册页面register.jsp 第五步:再创建utils ...

  9. JAVA实现简单的登录界面

    我本来是学C++的,然后课程上老师要求做一个登陆界面,用C++实现不限时,然后就选择了JAVA,从零开始自学JAVA.好在网上很多大佬都写了如何用JAVA编写登陆界面的博客,写得很详细,使得我第一次接 ...

最新文章

  1. python项目-这4个Python实战项目,让你瞬间读懂Python!
  2. opencv matlab测距,基于MATLAB和OpenCV的双目视觉测距系统的实现
  3. [Java]Object有哪些公用方法?
  4. 【LeetCode笔记】剑指 Offer 44. 数字序列中某一位的数字(Java、偏数学)
  5. 菜鸡程序员的一天都在折腾些什么?
  6. VMware虚拟机中Linux系统如何修改IP地址
  7. win7如何安装IIS,三种方法任你选(图文教程)
  8. php codeigniter 教程,CodeIgniter操作教程
  9. ModSecurity规则
  10. 两个人聪明人的空城——《司马懿之虎啸龙吟》
  11. 网页截图及TDK抓取
  12. 一个程序员血淋淋的教训,心态没了,世界坍塌了
  13. clamped b_spline
  14. Nginx调试日志[emerg]: invalid log level “debug_http” in /path/conf/nginx.conf:XX
  15. 【Anaconda安装与使用】
  16. 中国无线天线行业市场供需与战略研究报告
  17. 2021了,最流行的密码依旧是123456
  18. item_search_shop -VVIC 商家商品列表
  19. 修改服务器设置能群发链接,修改服务器设置能群发链接
  20. [转载]关于QQ游戏外挂mouse_event不起作用的原因,及我的对对碰外挂程序.

热门文章

  1. 如何使用 pyqt 实现 Groove 音乐播放器
  2. HTML表格(合并单元格、边框、行高、间距等样式)
  3. 【软件测试】软件测试管理
  4. Object o=new object()在中占用多少字节?
  5. 理想智慧社区建设的总体框架
  6. Java工程师-招聘要求
  7. PM2 部署 nodejs 项目
  8. Nginx负载均衡请求转发
  9. k8s部署Kube Prometheus(Prometheus Operator)
  10. iOS富文本解析html图片,小程序解析html和富文本编辑内容【亲测有效】