我正在开发一个以登录窗口开头的 Python Qt 应用程序。登录后,我想显示正常的应用程序窗口。作为测试,我尝试显示 AuthWindow(登录窗口)两次。期望的效果是登录窗口打开一次,我关闭它,然后第二个打开,等等。第一个打开,我关闭它,程序退出实际发生了什么。
import sys
from PyQt4 import QtGui
from AuthWindow import AuthWindow
def main():
app = QtGui.QApplication(sys.argv)
w = AuthWindow()
w.show()
w = AuthWindow()
w.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
这是 AuthWindow 的代码:
from PyQt4 import QtGui
class AuthWindow(QtGui.QDialog):
User, Admin = range(2)
def __init__(self, parent = None):
super().__init__(parent)
self.setWindowTitle('Login')
hbox = QtGui.QHBoxLayout(self)
vbox = QtGui.QVBoxLayout()
self.username = QtGui.QLineEdit()
self.password = QtGui.QLineEdit()
vbox.addWidget(QtGui.QLabel('Username'))
vbox.addWidget(self.username)
vbox.addWidget(QtGui.QLabel('Password'))
vbox.addWidget(self.password)
btn = QtGui.QPushButton('Login')
btn.clicked.connect(self.loginClicked)
hbox.addLayout(vbox)
hbox.addWidget(btn)
self.password.setEchoMode(QtGui.QLineEdit.Password)
def loginClicked(self, ev):
auth = self.checkLogin()
print(auth)
def checkLogin(self):
username = self.username.text()
password = self.password.text()
print(username)
print(password)
# login logic will go here...