PyQt4 登陸介面

2021-09-01 17:13:59 字數 3144 閱讀 1447

對於初次做gui程式的人來說,確實登陸視窗程式會造成困惑,以前做delphi時也有人問過我,好不容易人家才理解清楚,pyqt也是一樣的。

一般有兩種處理方式:

第一種:在開啟主窗體前開啟登陸對話方塊,如果登陸成功,再建立主窗體並開啟;

第二種:在建立主窗體後,在顯示主窗體前開啟登陸對話方塊,如果登陸成功,顯示主窗體,如果失敗,不顯示主窗體,並退出程式。

我推薦第一種方式,邏輯清晰,並且如果登陸不成功,那麼不需要建立主窗體。

先放開登陸對話方塊不管,最簡單的來理解,那麼可以我們可以把登陸這個行為理解為乙個方法,如果這個方法成功,那麼就建立並顯示主窗體。說白了和確認對話方塊一樣的 ,確認對話方塊並不需要你來處理如何建立並開啟會對話方塊,你只要呼叫這個方法即可,系統會幫你開啟對話方塊。

那麼來看**:

from pyqt4 import qtgui, qtcore

def login():

return true

if __name__ == '__main__':

import sys

if login():

win = qtgui.qmainwindow()

win.show()

這段**應該很好理解,這裡定義了這個login方法,你可以試著把返回值設成false,這樣主窗體就不會顯示了,說明可以達到你的要求了。這裡把複雜性都隱 藏到login方法裡了,把開啟對話方塊的**就寫在這個方法裡面。

# 建立乙個login對話方塊:

class logindialog(qtgui.qdialog):

def __init__(self, parent=none):

qtgui.qdialog.__init__(self, parent)

self.user = qtgui.qlineedit(self)

self.user.move(10, 20)

self.user.settext('admin')

self.pwd = qtgui.qlineedit(self)

self.pwd.move(10, 60)

self.pwd.settext('admin')

self.pwd.setechomode(qtgui.qlineedit.password)

loginbtn = qtgui.qpushbutton('login', self)

loginbtn.move(100, 90)

loginbtn.clicked.connect(self.login) # 繫結方法判斷使用者名稱和密碼

def login(self):

if unicode(self.user.text()) == u'admin' and

unicode(self.pwd.text()) == u'admin':

# 如果使用者名稱和密碼正確,關閉對話方塊,accept()關閉後,如果增加乙個取消按鈕呼叫reject()

self.accept()

else:

qtgui.qmessagebox.critical(self, 'error', 'user name or

password error')

# login方法更改如下:

def login():

dialog = logindialog()

if dialog.exec_():

return true

return false

# 當然如果你嫌login方法這樣寫囉嗦,那麼可以直接這樣寫:

if __name__ == '__main__':

import sys

dialog = logindialog()

if dialog.exec_():

win = qtgui.qmainwindow()

win.show()

[python]view plain

copy

print?

from pyqt4 import qtgui  

class logindialog(qtgui.qdialog):   

def __init__(self, parent=none):   

qtgui.qdialog.__init__(self, parent)   

self.setwindowtitle('login')  

self.user = qtgui.qlineedit(self)   

self.user.move(10, 20)   

self.user.settext('admin')   

self.pwd = qtgui.qlineedit(self)   

self.pwd.move(10, 60)   

self.pwd.settext('admin')   

self.pwd.setechomode(qtgui.qlineedit.password)   

self.loginbtn = qtgui.qpushbutton('login', self)   

self.loginbtn.move(100, 90)   

self.loginbtn.clicked.connect(self.login) # 繫結方法判斷使用者名稱和密碼 

def login(self):   

ifself.user.text() == 'admin'

andself.pwd.text() == 'admin':   

# 如果使用者名稱和密碼正確,關閉對話方塊,accept()關閉後,如果增加乙個取消按鈕呼叫reject() 

self.accept()   

else:   

qtgui.qmessagebox.critical(self, 'error', 'user name or password error')   

if __name__ == '__main__':   

import sys   

dialog = logindialog()   

if dialog.exec_():   

win = qtgui.qmainwindow()   

win.setwindowtitle('mainwindow')  

win.show()   

PyQt5 登陸介面

self.setwindowtitle 登陸介面 self.setwindowicon qicon d ico ooopic 1552382147.ico self.resize 500,200 self.password 12345678 self.username kaixinde101 sel...

C 登陸介面

在c 中從登陸介面進入主介面,進入主介面以後怎麼關閉登陸介面 有很多方法,我就說兩種 方法一 在登入介面的登入按鈕的單擊事件下,寫 這種情況其實把主介面看作登入介面的子窗體。只是把登入介面隱藏,它還存在於記憶體中,不過一般登入介面很小,不佔多少資源,也無所謂。private void btnlogi...

WPF 登陸介面

效果圖 黑色是我的桌面 圓角登入框 以下基於wpf。一開始最先要的效果就是圓角窗體,單純出於美觀的心態,但是人是不滿足的,改了一點就像再有一點。哈哈哈 更改預設 其實就是將原有的窗體變隱藏,然後搞乙個新的出來。windowstyle none allowstransparency true back...