Python-如何制作一个简单的登陆界面【记录】

这篇具有很好参考价值的文章主要介绍了Python-如何制作一个简单的登陆界面【记录】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、明确目的:

(1)打开登陆界面后,输入对应的账号和密码,自动进入到主界面程序,登陆界面消失;

(2)进入主界面程序后,可以返回登陆界面,同时主界面消失;

(3)达到指令要求后,可以注册账号和密码,并保存到数据库。(此功能具体实现暂时不考虑。)

2、首先,先创建一个登陆界面,可以通过Pyqt5创建,得到Ui_untitled.py界面程序文件【如下代码块】。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'd:\Python_studyltem\软件登陆界面实现\login_file\untitled.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


class Ui_LoginActivity(object):
    def setupUi(self, LoginActivity):
        LoginActivity.setObjectName("LoginActivity")
        LoginActivity.resize(387, 178)
        self.centralwidget = QtWidgets.QWidget(LoginActivity)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setMinimumSize(QtCore.QSize(0, 30))
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 4, 1, 1, 1)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_2.setMinimumSize(QtCore.QSize(0, 30))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 2)
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setMinimumSize(QtCore.QSize(0, 30))
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 2)
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setFrameShape(QtWidgets.QFrame.WinPanel)
        self.label_2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setMinimumSize(QtCore.QSize(0, 0))
        self.label.setFrameShape(QtWidgets.QFrame.WinPanel)
        self.label.setFrameShadow(QtWidgets.QFrame.Raised)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setMinimumSize(QtCore.QSize(0, 30))
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 4, 2, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setFrameShape(QtWidgets.QFrame.WinPanel)
        self.label_3.setFrameShadow(QtWidgets.QFrame.Raised)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
        self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_3.setMinimumSize(QtCore.QSize(0, 30))
        self.lineEdit_3.setSizeIncrement(QtCore.QSize(0, 0))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.gridLayout.addWidget(self.lineEdit_3, 2, 1, 1, 2)
        LoginActivity.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(LoginActivity)
        self.statusbar.setObjectName("statusbar")
        LoginActivity.setStatusBar(self.statusbar)

        self.retranslateUi(LoginActivity)
        QtCore.QMetaObject.connectSlotsByName(LoginActivity)
        LoginActivity.setTabOrder(self.lineEdit, self.lineEdit_2)
        LoginActivity.setTabOrder(self.lineEdit_2, self.lineEdit_3)
        LoginActivity.setTabOrder(self.lineEdit_3, self.pushButton)
        LoginActivity.setTabOrder(self.pushButton, self.pushButton_2)

    def retranslateUi(self, LoginActivity):
        _translate = QtCore.QCoreApplication.translate
        LoginActivity.setWindowTitle(_translate("LoginActivity", "MainWindow"))
        self.pushButton.setText(_translate("LoginActivity", "登陆"))
        self.label_2.setText(_translate("LoginActivity", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt;\">密码:</span></p></body></html>"))
        self.label.setText(_translate("LoginActivity", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt;\">账号:</span></p></body></html>"))
        self.pushButton_2.setText(_translate("LoginActivity", "注册"))
        self.label_3.setText(_translate("LoginActivity", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt;\">指令:</span></p></body></html>"))

3、将该登陆界面展现出来,导入上面的界面程序,代码如下:

from Ui_untitled import Ui_LoginActivity
import sys
from PyQt5.QtGui import QIcon  # 用于添加图标
from PyQt5.QtWidgets import QWidget,QMainWindow,QApplication
from PyQt5.QtCore import pyqtSlot

class Login_main(QMainWindow,Ui_LoginActivity):

    def __init__(self):
        super().__init__()  # 使用超类,继承父类的属性及方法
        self.setupUi(self)  # 构造窗体界面
        self.setWindowIcon(QIcon("./img/result.png")) #设置界面图标
        self.initUI()  # 构造功能函数

    def initUI(self):
        self.pushButton.setShortcut('Return')  # 设置快捷键
        self.setWindowTitle("登陆窗口")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    login_ui = Login_main()
    login_ui.show()
    sys.exit(app.exec_())

4、制作程序的主界面,得到Ui_test_button.py界面程序文件【如下代码块】。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'd:\Python_studyltem\软件登陆界面实现\test_button.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


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(384, 350)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setObjectName("textBrowser")
        self.gridLayout.addWidget(self.textBrowser, 3, 0, 1, 1)
        self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton1.setObjectName("pushButton1")
        self.gridLayout.addWidget(self.pushButton1, 0, 0, 1, 1)
        self.pushButton2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton2.setObjectName("pushButton2")
        self.gridLayout.addWidget(self.pushButton2, 1, 0, 1, 1)
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout.addWidget(self.pushButton_3, 2, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 384, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton1.setText(_translate("MainWindow", "测试按钮-1"))
        self.pushButton2.setText(_translate("MainWindow", "测试按钮-2"))
        self.pushButton_3.setText(_translate("MainWindow", "返回登陆状态"))

5、同样,将该主界面展现出来,导入上面的主界面py程序,代码如下:

from  Ui_test_button import Ui_MainWindow
import sys
from PyQt5.QtGui import QIcon  # 用于添加图标
from PyQt5.QtWidgets import QWidget,QMainWindow,QApplication
from PyQt5.QtCore import pyqtSlot

class Test_window(QMainWindow,Ui_MainWindow):  # 继承至界面文件的主窗口类
    
    def __init__(self):
        super().__init__()  # 使用超类,继承父类的属性及方法
        self.setupUi(self)  # 构造窗体界面
        self.setWindowIcon(QIcon("./img/result.png"))
        self.setWindowTitle("Test_button")  # 设置窗体主体
        self.initUI()  # 构造功能函数
    
    def initUI(self):
        #此处添加功能连接函数
        self.pushButton1.clicked.connect(self.bofang_video)  #自定义按钮连接自定义槽函数
        # self.pushButton1.pressed.connect()   #不同的按钮点击方式
        # self.pushButton1.released.connect()
    
    @pyqtSlot()
    def on_pushButton2_clicked(self): #利用QT自带槽函数直接连接按钮
        self.textBrowser.append("点击按钮2!")
        self.textBrowser.append("<font color=\"#00FF00\">点击按钮2!</font> ") #设置字体颜色
        self.textBrowser.append("======================")
        
    def bofang_video(self):
        print("123")
        self.textBrowser.append("点击按钮1!")
        self.textBrowser.append("<font color=\"#FF0000\">点击按钮1!</font> ") #设置字体颜色
        self.textBrowser.append("======================")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ui2 = Test_window()
    ui2.show()
    sys.exit(app.exec_())

6、当前,已经将登陆界面和主界面运行程序成功完成,接下就是将两个界面程序,放入到一个app程序中监控,并同时操控两个界面程序,代码如下;

from login import Login_main
from test_main import Test_window 
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMessageBox

'''
调用两个界面,点击退出,可退回界面
'''

# 保存自定义账号和密码
save_information = {"save_zhanghao":["admin",]}
save_information_password = {"password":["19970128",]}


# 登陆流程
def control_ui():
    zhanghao = login_ui.lineEdit.text()
    password = login_ui.lineEdit_2.text()
    if zhanghao in save_information.get("save_zhanghao"):
        zhanghao_ret = True
    else:
        print("账号不存在!")
        QMessageBox.warning(login_ui,"警告", "账号不存在!", QMessageBox.Cancel)
        zhanghao_ret = False
        return
    if password in save_information_password.get("password"):
        password_ret = True
    else:
        print("密码输入错误!")
        QMessageBox.warning(login_ui,"警告", "密码输入错误!", QMessageBox.Cancel)
        password_ret = False
        return
    if zhanghao_ret == True and password_ret == True:
        # 打开主界面
        print("打开主界面!")
        # 关闭登陆界面
        login_ui.close()
        # 打开主程序运行界面
        main_ui.show()

# 注册流程,未完善,可自行自定义完成
def zhuche():
    zhanghao = login_ui.lineEdit.text()
    password = login_ui.lineEdit_2.text()

    zhiling = login_ui.lineEdit_3.text()
    if zhiling == "8888":
        print("注册信息!")
        QMessageBox.warning(login_ui,"提示", "可以注册账号!", QMessageBox.Cancel)
    else:
        QMessageBox.warning(login_ui,"警告", "指令输入错误,无法注册账号!", QMessageBox.Cancel)


def back_login():
    login_ui.show()
    main_ui.close()
    login_ui.lineEdit.clear()
    login_ui.lineEdit_2.clear()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    login_ui = Login_main()
    login_ui.pushButton.clicked.connect(control_ui)
    login_ui.pushButton_2.clicked.connect(zhuche)
    login_ui.show()
    main_ui = Test_window()
    main_ui.pushButton_3.clicked.connect(back_login)
    sys.exit(app.exec_())

7、展示情况如下:

登陆界面展示文章来源地址https://www.toymoban.com/news/detail-502391.html

到了这里,关于Python-如何制作一个简单的登陆界面【记录】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用QT制作一个简单的登录-注册界面

    1、作业需求   2、实现过程 1)Widget.h文件 2)Widget.cpp文件

    2024年02月11日
    浏览(32)
  • HTML和CSS配合制作一个简单的登录界面

    这是一个CSS样式表,用于为网页中的HTML元素设置样式。接下来我会逐句解释每个选择器和样式的作用。 *{ box-sizing: border-box; } :这行代码将所有HTML元素的盒模型设置为 border-box ,使元素的宽高包括内容、内边距和边框,而不仅仅是内容。 body{ font-family: Arial, Helvetica, sans-ser

    2024年02月12日
    浏览(32)
  • 界面开发(2)--- 使用PyQt5制作用户登陆界面

    上篇文章已经介绍了如何配置PyQt5环境,这篇文章在此基础上展开,主要记录一下如何使用 PyQt5 制作用户登陆界面,并对一些基础操作进行介绍。 下面是具体步骤,一起来看看吧! 1. 打开 Pycharm 中的 Qt Designer 工具。 2. 选择Main Window模式,创建界面窗口。 3. 移除菜单栏和状态

    2024年02月05日
    浏览(46)
  • python界面开发案例:制作一个计算器软件

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 在我们手机上大家都有一个计算器,对吧 那它这功能是怎么实现的呢? 今天我们在电脑上来实现一个电脑端计算器界面~ 开发环境: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器 本文所有模块环境源码教程皆可点击文章下方

    2023年04月16日
    浏览(39)
  • PySimpleGUI:使用 Python 轻松制作一个图形界面(GUI)

    大家好,GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。 一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。所以开发一个图

    2024年02月16日
    浏览(44)
  • Unity3D学习之UI系统——用NGUI制作游戏登陆界面

    会省略一些东西,可以看我的NGUI的博客 设置UI分辨率自适应 设置Root 的层级 和摄像机渲染的层级为UI 主摄像机不渲染UI 一般都是美术给一个示意图,然后按示意图上拼面板 3.1.1 制作图集 制作两个新图集 3.1.2 拖面板 检查DrawCall 3.1.3 面板基类 创建面板基类, 首先设置成单例

    2024年02月19日
    浏览(63)
  • Matlab中如何使用appdesigner设计工具建立一个简单的界面

    建立一个新的空白界面,matlab中输入 appdesigner ,打开app设计工具,新建一个空白界面 为了实现图像的输入和结构显示,以及功能的运转,我们首先拖入两个 图像 和三个 按钮 模块,为了美观,去除默认坐标区功能模块的x、y轴颜色和标签(在右侧检查器中更改) 布局完成后

    2024年02月05日
    浏览(29)
  • 教你如何使用Unity制作一个简单的跑酷游戏

    其实用Unity制作游戏并不难,如果你想学习,那我就建议你想从制作一个简单的跑酷游戏来找到兴趣,因为如果你一开始就一直学习一些没什么必要的语法,这样就会让你一开始就失去了信心,失去了学习Unity的动力,所以如果你先学习如何制作一个简单的跑酷地图,然后你就

    2024年02月04日
    浏览(48)
  • Python的界面神器Streamlit初使用,一个漂亮的界面有多简单,超乎想象

    废话不多说,直接上干货 首先安装好所需要的库 新建一个 Python 文件(test.py),导入所需要的库, 打开命令,行输入命令, 启动服务,可以看到输出信息证明已经成功启动了一个服务,浏览器会自动打开这个地址。 现在页面什么东西都没有,加一句代码,打印一些文字 保存文

    2024年02月08日
    浏览(37)
  • 【Unity】教你如何使用Unity制作一个简单的跑酷游戏

    其实用Unity制作游戏并不难,如果你想学习,那我就建议你想从制作一个简单的跑酷游戏来找到兴趣,因为如果你一开始就一直学习一些没什么必要的语法,这样就会让你一开始就失去了信心,失去了学习Unity的动力,所以如果你先学习如何制作一个简单的跑酷地图,然后你就

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包