如何创建具有会话/注销功能的登录系统?

时间:2019-03-26 15:31:57

标签: python python-3.x pyqt pyqt5

我是一位刚开始学习PyQt5框架的中级python程序员。

我正在开发台式机软件,在实现具有cookie会话和注销功能的登录系统时遇到一些困难。

我已经完成了无数次的在线搜索,但没有找到答案。我确实发现这可以通过QSessionManager进行管理,但是我不知道如何使用。

有人可以向我指出指导或帮助我吗? 非常感谢。

1 个答案:

答案 0 :(得分:0)

创建登录/注销系统的一种方法是使用 scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66) at scala.reflect.internal.Mirrors$RootsBase.getClassByName(Mirrors.scala:102) at scala.reflect.internal.Mirrors$RootsBase.getRequiredClass(Mirrors.scala:105) at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass$lzycompute(Definitions.scala:257) at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass(Definitions.scala:257) at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1394) at scala.tools.nsc.Global$Run.<init>(Global.scala:1215) at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:432) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:855) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:813) at scala.tools.nsc.interpreter.IMain.bind(IMain.scala:675) at scala.tools.nsc.interpreter.IMain.bind(IMain.scala:712) at scala.tools.nsc.interpreter.IMain$$anonfun$quietBind$1.apply(IMain.scala:711) at scala.tools.nsc.interpreter.IMain$$anonfun$quietBind$1.apply(IMain.scala:711) at scala.tools.nsc.interpreter.IMain.beQuietDuring(IMain.scala:214) at scala.tools.nsc.interpreter.IMain.quietBind(IMain.scala:711) at org.apache.zeppelin.spark.SparkScala211Interpreter$.loopPostInit$1(SparkScala211Interpreter.scala:141) at org.apache.zeppelin.spark.SparkScala211Interpreter$.org$apache$zeppelin$spark$SparkScala211Interpreter$$loopPostInit(SparkScala211Interpreter.scala:176) at org.apache.zeppelin.spark.SparkScala211Interpreter.open(SparkScala211Interpreter.scala:86) at org.apache.zeppelin.spark.NewSparkInterpreter.open(NewSparkInterpreter.java:102) at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:62) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:69) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:616) at org.apache.zeppelin.scheduler.Job.run(Job.java:188) at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:140) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:844) 。本质上,此小部件允许您在单个页面上具有多个布局(一个用于锁定,另一个用于解锁)。您可以使用QStackedWidget()在页面之间切换,其中索引号由在setCurrentIndex()中插入布局/窗口小部件的顺序确定。

成功登录后,您可以切换到“解锁”页面,而要注销,则可以切换到“锁定”页面。我使用PyQt4进行测试,并尝试将其转换为PyQt5,因此代码可能需要调整。

Login

QStackedWidget()