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:当密码账号输入正确,登录界面消失并显示主界面