你应该发布你已经拥有的东西,这样我们就可以看到你哪里出错了。知道您正在使用哪个版本的 wxPython 和 Python 以及哪个操作系统也会很好。无论如何,这是一种方法:
import wx
########################################################################
class LoginPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
self.mainSizer = wx.BoxSizer(wx.VERTICAL)
userSizer = wx.BoxSizer(wx.HORIZONTAL)
pwdSizer = wx.BoxSizer(wx.HORIZONTAL)
userLbl = wx.StaticText(self, label="Username:")
userSizer.Add(userLbl, 0, wx.CENTER|wx.ALL, 5)
self.userTxt = wx.TextCtrl(self)
userSizer.Add(self.userTxt, 1, wx.EXPAND|wx.ALL, 5)
pwdLbl = wx.StaticText(self, label="Password:")
pwdSizer.Add(pwdLbl, 0, wx.CENTER|wx.ALL, 5)
self.pwdTxt = wx.TextCtrl(self, style=wx.TE_PASSWORD)
pwdSizer.Add(self.pwdTxt, 1, wx.EXPAND|wx.ALL, 5)
loginBtn = wx.Button(self, label="Login")
loginBtn.Bind(wx.EVT_BUTTON, self.onLogin)
self.mainSizer.Add(userSizer, 0, wx.EXPAND)
self.mainSizer.Add(pwdSizer, 0, wx.EXPAND)
self.mainSizer.Add(loginBtn, 0, wx.CENTER|wx.ALL, 5)
self.SetSizer(self.mainSizer)
#----------------------------------------------------------------------
def onLogin(self, event):
"""
Login or show msg box if password wrong
"""
username = self.userTxt.GetValue()
pwd = self.pwdTxt.GetValue()
if pwd == "password":
print "logging in"
else:
msg = "Wrong password or username!"
wx.MessageBox(msg, "Error", wx.OK|wx.ICON_INFORMATION)
########################################################################
class LoginFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Login")
panel = LoginPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
frame = LoginFrame()
app.MainLoop()