wxPython:当密码账号输入正确,登录界面消失并显示主界面

Posted 何小有

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wxPython:当密码账号输入正确,登录界面消失并显示主界面相关的知识,希望对你有一定的参考价值。

登录界面弹窗(LoginDialog 类)如下:

登录界面弹窗(LoginDialog 类)代码如下:

import wx

class LoginDialog(wx.Dialog):
    def __init__(self, parent=None, compulsory_login_flag=True):
        super(LoginDialog, self).__init__(parent, -1, title='Login to UATP',
                                          style=wx.DEFAULT_DIALOG_STYLE)
        self._compulsory_login_flag = compulsory_login_flag
        self.user_info = None
        self.InitUI()
        self.ShowModal()

    def InitUI(self):
        user_list = ['A user', 'B user']
        # 操作组件
        self.input_name = wx.ComboBox(self, choices=user_list)
        self.input_pass = wx.TextCtrl(self, style=wx.TE_PASSWORD)
        self.btn_1a = wx.Button(self, label='Login', size=(7, 35))
        # 装饰组件
        label_name = wx.StaticText(self, label='Username')
        label_pass = wx.StaticText(self, label='Password')
        panel_black = wx.Panel(self, size=(7, 15))
        panel_black.SetBackgroundColour(wx.Colour('#474747'))
        panel_red = wx.Panel(self, size=(7, 30))
        panel_red.SetBackgroundColour(wx.Colour('#bf0006'))
        # 布局组件
        fgs_2 = wx.FlexGridSizer(rows=2, cols=2, vgap=8, hgap=10)
        fgs_2.AddMany([
            (label_name), (self.input_name, 1, wx.EXPAND),
            (label_pass), (self.input_pass, 1, wx.EXPAND)
        ])
        fgs_2.AddGrowableCol(1)
        fgs_1 = wx.FlexGridSizer(rows=4, cols=1, vgap=0, hgap=0)
        fgs_1.AddMany([
            (panel_red, 1, wx.EXPAND),
            (fgs_2, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, 15),
            (self.btn_1a, 1, wx.EXPAND | wx.ALL, 15),
            (panel_black, 1, wx.EXPAND)
        ])
        fgs_1.AddGrowableCol(0)
        fgs_1.AddGrowableRow(0, 2)
        fgs_1.AddGrowableRow(3, 1)
        # 窗口组件
        self.SetSizer(fgs_1)
        self.Center()
        self.Bind(wx.EVT_CLOSE, self._handle_before_close_dialog)

    def _handle_before_close_dialog(self, e):
        if self._compulsory_login_flag:
            wx.Exit()
        else:
            self.user_info = 'name': 'A user', 'age': 18
            self.Destroy()

登录界面弹窗(LoginDialog 类)的调用方法:

import wx
from ui.login_dialog import LoginDialog


class MainFrame(wx.Frame):
    def __init__(self, *args, **kw):
        # 确保父级的 __init__ 被调用
        super(MainFrame, self).__init__(*args, **kw)
        pnl = wx.Panel(self)  # 主面板
        …………
        login = LoginDialog(compulsory_login_flag=False)
        print(login.user_info)
		…………

只需要在主窗口启动之前调用 LoginDialog 类,就能在主界面显示之前,先打开登录窗口,然后在 LoginDialog 类的 _handle_before_close_dialog 方法中,根据 _compulsory_login_flag(强制登录标识) 类属性的值,判断是否允许用户跳过登录。

以上是关于wxPython:当密码账号输入正确,登录界面消失并显示主界面的主要内容,如果未能解决你的问题,请参考以下文章

wxPython:当密码账号输入正确,登录界面消失并显示主界面

Bug报告

java设置一个登录界面输入账号密码,与数据库内账号密码相比较,正确显示登录成功反之失败

输入账号密码后点击登录又重新跳转到登录界面

旺店通怎么切换账号

Demon_游戏登录界面(具备账号密码输入功能)