1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > wxPython:当密码账号输入正确 登录界面消失并显示主界面

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

时间:2020-11-16 08:10:27

相关推荐

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

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

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

import wxclass 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_flagself.user_info = Noneself.InitUI()self.ShowModal()def InitUI(self):user_list = ['A user', 'B user']# 操作组件self.input_name = boBox(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 wxfrom ui.login_dialog import LoginDialogclass 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(强制登录标识) 类属性的值,判断是否允许用户跳过登录。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。