python通過PyQt5實現(xiàn)登錄界面

本例,展示了通過登錄界面打開主界面的實現(xiàn)方式。

在開始實現(xiàn)登錄界面前,先給大家普及一下PyQt5的安裝以及使用

1. pyQt5簡單使用

安裝

pip install PyQt5
pip3.5 install pyqt5-tools

界面化操作

1.在win+R中輸入designer并敲回車,即可啟動Designer。一般選擇“Main Window”點擊“Create”即可創(chuàng)建。

若在win+R中輸入designer并敲回車后無反應(yīng),可以直接搜designer.exe直接啟動

image

2.創(chuàng)建后,可以方便快捷的用Qt Designer畫出對應(yīng)框體,如通過Combo Box添加下拉選擇的控件;通過Push Button添加按鈕;通過List Widget添加列表框;通過Table Widget添加數(shù)據(jù)表格框,table中設(shè)置列數(shù)(右鍵-Edit Items-Colums),調(diào)整框體位置和文字大小,背景顏色以及windowTitle來優(yōu)化界面顯示,使用快捷鍵Ctrl+R預(yù)覽當(dāng)前編寫的GUI顯示如下:

image

3.點擊保存,生成*.ui的文件,本例中為test.ui,保存在D:\py\deploy文件夾下

2.開始實現(xiàn)登錄界面


import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
#創(chuàng)建主窗口
class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('主界面')
        self.showMaximized()
#對話框
class logindialog(QDialog):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('登錄界面')
        self.resize(200, 200)
        self.setFixedSize(self.width(), self.height())
        self.setWindowFlags(Qt.WindowCloseButtonHint)

        ###### 設(shè)置界面控件
        self.frame = QFrame(self)
        self.verticalLayout = QVBoxLayout(self.frame)

        self.lineEdit_account = QLineEdit()
        self.lineEdit_account.setPlaceholderText("請輸入賬號")
        self.verticalLayout.addWidget(self.lineEdit_account)

        self.lineEdit_password = QLineEdit()
        self.lineEdit_password.setPlaceholderText("請輸入密碼")
        self.verticalLayout.addWidget(self.lineEdit_password)

        self.pushButton_enter = QPushButton()
        self.pushButton_enter.setText("確定")
        self.verticalLayout.addWidget(self.pushButton_enter)

        self.pushButton_quit = QPushButton()
        self.pushButton_quit.setText("取消")
        self.verticalLayout.addWidget(self.pushButton_quit)

        ###### 綁定按鈕事件
        self.pushButton_enter.clicked.connect(self.on_pushButton_enter_clicked)
        self.pushButton_quit.clicked.connect(QCoreApplication.instance().quit)

    def on_pushButton_enter_clicked(self):
        # 賬號判斷
        if self.lineEdit_account.text() == "":
            return

        # 密碼判斷
        if self.lineEdit_password.text() == "":
            return

        # 通過驗證,關(guān)閉對話框并返回1
        self.accept()

#程序入門
if __name__ == "__main__":
    app = QApplication(sys.argv)
    dialog = logindialog()
    if  dialog.exec_()==QDialog.Accepted:
        the_window = MainWindow()
        the_window.show()
        sys.exit(app.exec_())
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容