如何使用PyQt5一步步實現用戶登錄GUI界面、登錄后跳轉?


PyQt5是強大的GUI工具之一,通過其可以實現優秀的桌面應用程序。希望通過一個簡單的登錄頁面可以讓大家順利入坑,如有不妥之處還請大佬指點改正!

file

【閱讀全文】

導入業務需要的所有的擴展包。

import sys  # 系統參數操作
from PyQt5.QtWidgets import *  # 模塊包含創造經典桌面風格的用戶界面提供了一套UI元素的類
from PyQt5.QtCore import *  # 此模塊用於處理時間、文件和目錄、各種數據類型、流、URL、MIME類型、線程或進程
from PyQt5.QtGui import *  # 含類窗口系統集成、事件處理、二維圖形、基本成像、字體和文本

創建主界面窗口。

class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        '''
        構造函數,初始化參數屬性
        :param args:
        :param kwargs:
        '''
        super().__init__(*args, **kwargs)
        self.setWindowTitle('主功能頁面')
        self.setFixedWidth(600)
        self.setFixedHeight(600)

創建登錄對話框。

class LoginDialog(QDialog):
    def __init__(self, *args, **kwargs):
        '''
        構造函數,初始化登錄對話框的內容
        :param args:
        :param kwargs:
        '''
        super().__init__(*args, **kwargs)
        self.setWindowTitle('歡迎登錄')  # 設置標題
        self.resize(200, 200)  # 設置寬、高
        self.setFixedSize(self.width(), self.height())
        self.setWindowFlags(Qt.WindowCloseButtonHint)  # 設置隱藏關閉X的按鈕

        '''
        定義界面控件設置
        '''
        self.frame = QFrame(self)  # 初始化 Frame對象
        self.verticalLayout = QVBoxLayout(self.frame)  # 設置橫向布局
        self.verticalLayout

        self.login_id = QLineEdit()  # 定義用戶名輸入框
        self.login_id.setPlaceholderText("請輸入登錄賬號")  # 設置默認顯示的提示語
        self.verticalLayout.addWidget(self.login_id)  # 將該登錄賬戶設置添加到頁面控件

        self.passwd = QLineEdit()  # 定義密碼輸入框
        self.passwd.setPlaceholderText("請輸入登錄密碼")  # 設置默認顯示的提示語
        self.verticalLayout.addWidget(self.passwd)  # 將該登錄密碼設置添加到頁面控件

        self.button_enter = QPushButton()  # 定義登錄按鈕
        self.button_enter.setText("登錄")  # 按鈕顯示值為登錄
        self.verticalLayout.addWidget(self.button_enter)  # 將按鈕添加到頁面控件

        self.button_quit = QPushButton()  # 定義返回按鈕
        self.button_quit.setText("返回")  # 按鈕顯示值為返回
        self.verticalLayout.addWidget(self.button_quit)  # 將按鈕添加到頁面控件

        # 綁定按鈕事件
        self.button_enter.clicked.connect(self.button_enter_verify)
        self.button_quit.clicked.connect(
            QCoreApplication.instance().quit)  # 返回按鈕綁定到退出

    def button_enter_verify(self):
        # 校驗賬號是否正確
        if self.login_id.text() != "admin":
            print("test1")
            return
        # 校驗密碼是否正確
        if self.passwd.text() != "admin@1234":
            print("test2")
            return
        # 驗證通過,設置QDialog對象狀態為允許
        self.accept()

最后通過mian入口函數啟動應用。

if __name__ == "__main__":
    # 創建應用
    window_application = QApplication(sys.argv)
    # 設置登錄窗口
    login_ui = LoginDialog()
    # 校驗是否驗證通過
    if login_ui.exec_() == QDialog.Accepted:
        # 初始化主功能窗口
        main_window = MainWindow()
        # 展示窗口
        main_window.show()
        # 設置應用退出
        sys.exit(window_application.exec_())

file

【往期精彩】

● 辦公自動化:幾行代碼將PDF文檔轉換為WORD文檔(代碼實戰)!

● 辦公自動化:輕松提取PDF頁面數據,並生成Excel文件(代碼實戰)!

● sched 模塊中巨好用的輕量級定時任務神器scheduler!

● 不用再使用命令行打包成exe,有人寫出了UI應用,可視化UI界面對python程序進行打包的方法!

● 發現一個秘密:既python3.6之后字典竟然變成了有序集合,我再次驗證了一下!

● 這么多的內置函數能記住嗎?對python的68個內置函數分類總結!

● 當大廠碼農,遇到多年未見的公務員老同學,故事的結尾炸了...

● 必須要會的文件操作對象File,python文件讀寫操作利器!

● 你不知道的CS模式的進程管理工具,狀態監測、項目啟停一目了然!

● 如何將一個python應用以docker鏡像的方式來運行?

● python-celery專注於實現分布式異步任務處理、任務調度的插件!

● python遠程服務操作工具:fabric,遠程命令、本地命令、服務器操作利器!

● python超贊插件you-get,執行一行命令即可下載、命令行下載工具推薦!

● 辦公自動化:Python-win32com自動將word文檔轉換成pdf格式!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM