当客户询问我是否可以在应用程序启动时实施某种登录表单时,我几乎完成了我的应用程序。
到目前为止,我已经设计了UI,并对实际执行情况进行了修改。用户名和密码暂时不相关。
class Login(QtGui.QDialog):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_dlgLogovanje()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.buttonLogin, QtCore.SIGNAL("clicked()"), self.doLogin)
def doLogin(self):
name = str(self.ui.lineKorisnik.text())
passwd = str(self.ui.lineSifra.text())
if name == "john" and passwd =="doe":
self.runIt()
else:
QtGui.QMessageBox.warning(self, 'Greška',
"Bad user or password", QtGui.QMessageBox.Ok)
def runIt(self):
myprogram = Window()
myprogram.showMaximized() #myprogram is
class Window(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
if __name__=="__main__":
program = QtGui.QApplication(sys.argv)
myprogram = Window()
if Login().exec_() == QtGui.QDialog.Accepted:
sys.exit(program.exec_())
显示登录表单。如果输入正确的用户名和密码,则将显示主窗口并正常工作。但是,登录表单保持活动状态,如果我关闭它,主窗口也会关闭。
AQDialog
有其自己的事件循环,因此可以与主应用程序分开运行。
因此,您只需要检查对话框的返回代码即可确定是否应运行主应用程序。
示例代码(PyQt4):
from PyQt4 import QtGui
# from mainwindow import Ui_MainWindow
class Login(QtGui.QDialog):
def __init__(self, parent=None):
super(Login, self).__init__(parent)
self.textName = QtGui.QLineEdit(self)
self.textPass = QtGui.QLineEdit(self)
self.buttonLogin = QtGui.QPushButton('Login', self)
self.buttonLogin.clicked.connect(self.handleLogin)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.textName)
layout.addWidget(self.textPass)
layout.addWidget(self.buttonLogin)
def handleLogin(self):
if (self.textName.text() == 'foo' and
self.textPass.text() == 'bar'):
self.accept()
else:
QtGui.QMessageBox.warning(
self, 'Error', 'Bad user or password')
class Window(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
# self.ui = Ui_MainWindow()
# self.ui.setupUi(self)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
login = Login()
if login.exec_() == QtGui.QDialog.Accepted:
window = Window()
window.show()
sys.exit(app.exec_())
示例代码(PyQt5):
from PyQt5 import QtWidgets
# from mainwindow import Ui_MainWindow
class Login(QtWidgets.QDialog):
def __init__(self, parent=None):
super(Login, self).__init__(parent)
self.textName = QtWidgets.QLineEdit(self)
self.textPass = QtWidgets.QLineEdit(self)
self.buttonLogin = QtWidgets.QPushButton('Login', self)
self.buttonLogin.clicked.connect(self.handleLogin)
layout = QtWidgets.QVBoxLayout(self)
layout.addWidget(self.textName)
layout.addWidget(self.textPass)
layout.addWidget(self.buttonLogin)
def handleLogin(self):
if (self.textName.text() == 'foo' and
self.textPass.text() == 'bar'):
self.accept()
else:
QtWidgets.QMessageBox.warning(
self, 'Error', 'Bad user or password')
class Window(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
# self.ui = Ui_MainWindow()
# self.ui.setupUi(self)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
login = Login()
if login.exec_() == QtWidgets.QDialog.Accepted:
window = Window()
window.show()
sys.exit(app.exec_())
我使用keycloak来管理基于Java的Web应用程序的身份验证。 我配置了一个Kerberos用户联合,该联合在内部网络中运行良好。 从网络外部访问Web应用程序,我会得到以下登录对话框,而不是转发到keycloak登录表单。 有趣的是,转发适用于Firefox,但不适用Edge、Chrome、IE。 如何阻止登录对话框并直接转发到keycloak-login-form? 编辑:例如,是否可以
本文向大家介绍VS2012下QT creator登录对话框设计,包括了VS2012下QT creator登录对话框设计的使用技巧和注意事项,需要的朋友参考一下 最近看《Qt教程及软件》学习QT,这本书的编程是在Qt creator上进行的,本人更倾向于在VS2012上进行开发,故根据自己实验中的经验,笔记一下在VS2012进行Qt编程的一些问题及解决方法,本人用的是Qt5.3版本。 首先,新建一个
导语 在前一篇的内容中已经实现了登录对话框,这里我们对其进行改进。在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框。 环境是:Windows 7 + Qt 4.8.1+ Qt Creator 2.4.1 目录 一、创建项目 二、登录设置 正文 一、创建项目 1.新建Qt Gui应用,项目名称为login,类名和基类保持MainWindow和
背景资料 我在应用程序中使用Google Plus OAuth和Firebase。当用户点击登录按钮时,账户选择对话框出现,用户选择特定的账户并登录。 问题 假设用户在该设备中有两个帐户,A和b。最初,他选择帐户A登录,然后使用该应用程序,然后决定退出。现在他再次点击登录按钮,但是账户选择对话框没有出现,它自动使用先前选择的账户a登录。 我想要的 我希望用户每次都能看到帐户选择对话框,并让他们有机
对话框的内容不是在页面最初可见,而是在用户操作时显示额外的信息。 Toasts Materialize 提供了非常简单的方法,来弹出一些信息,同时也不会让用户感到突兀。这些 Toasts 显示的位置和大小会随着你的设备的不同而改变。 在 JavaScript 中调用 Materialize.toast() 方法来使用。 // Materialize.toast(message, displayLe
对话框是一个现代GUI应用不可或缺的一部分。对话是两个人之间的交流,对话框就是人与电脑之间的对话。对话框用来输入数据,修改数据,修改应用设置等等。 输入文字 QInputDialog提供了一个简单方便的对话框,可以输入字符串,数字或列表。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this