【发布时间】:2019-12-23 02:05:50
【问题描述】:
我创建了一个登录窗口,在用户输入正确的密码之前,该窗口将一直存在,如果用户按下右上角的“X”按钮,该窗口应该会消失。但是,即使用户输入了错误的密码,窗口也会消失。
代码:
class Login(QDialog):
def __init__(self,parent=None):
super(Login, self).__init__(parent)
self.grid = QGridLayout(self)
self.setGeometry(650, 350, 400, 150)
self.setFixedSize(400, 150)
self.UserLabels = QLabel(self)
self.UserLabels.setText('Login Number:')
self.grid.addWidget(self.UserLabels, 0, 0, 1, 1)
self.textName = QLineEdit(self)
self.grid.addWidget(self.textName, 0, 1, 1, 2)
self.buttonLogin = QPushButton('Submit', self)
self.buttonLogin.clicked.connect(self.closeGUI)
self.grid.addWidget(self.buttonLogin, 2, 0, 1, 3)
finish = QAction("Quit", self)
finish.triggered.connect(self.closeWin)
def closeGUI(self):
self.close()
return str(self.textName.text())
def closeWin(self):
self.close()
return 1
def handleLogin():
flag = 0
while flag == 0:
edit_params__QD = Login()
edit_params__QD.exec_()
if edit_params__QD.result() == 0:
password = edit_params__QD.closeGUI()
if password == '6':
flag = 1
else:
flag = 0
if edit_params__QD.closeWin() == 1:
flag = 1
if __name__ == '__main__':
app = QApplication(sys.argv)
handleLogin()
【问题讨论】:
-
您可以按照这里的three_pineapples 答案处理事件:stackoverflow.com/questions/24532043/…
-
这些都不能解决我想做的事情。当输入不正确时,我希望窗口继续打开。但是,如果用户单击“X”,则销毁该窗口。现在,它只会破坏窗口。
标签: python events pyqt qdialog