我创建了一个登录窗口,在用户输入正确的密码之前,该窗口将一直保留,如果用户按下右上角的“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()
试试看:
下面给出了一个更完整的示例,说明如何编写登录对话框:
但是,在您自己的示例中,您应该注意,没有必要处理close事件,因为“X”按钮将自动 将对话框的结果设置为^{} 。相反,您只需要在单击submit按钮时将结果设置为
Accepted
。然后可以检查exec_()
的返回值以查看用户做了什么。你知道吗以下是您的脚本的重写:
相关问题 更多 >
编程相关推荐