以下是一个简单的wxPython注册登录界面示例,其中包括一个登录界面和一个用于登录后跳转的新界面。
```python
import wx
class LoginFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title='Login')
self.panel = wx.Panel(self)
self.username_label = wx.StaticText(self.panel, label='Username:')
self.username_text = wx.TextCtrl(self.panel)
self.password_label = wx.StaticText(self.panel, label='Password:')
self.password_text = wx.TextCtrl(self.panel, style=wx.TE_PASSWORD)
self.login_button = wx.Button(self.panel, label='Login')
self.register_button = wx.Button(self.panel, label='Register')
self.image = wx.Image('background.png', wx.BITMAP_TYPE_ANY)
self.bitmap = wx.StaticBitmap(self.panel, bitmap=self.image.ConvertToBitmap())
self.__set_properties()
self.__do_layout()
self.__set_events()
def __set_properties(self):
self.SetSize((500, 350))
self.username_text.SetMinSize((200, 25))
self.password_text.SetMinSize((200, 25))
self.login_button.SetMinSize((100, 30))
self.register_button.SetMinSize((100, 30))
def __do_layout(self):
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
sizer_4 = wx.BoxSizer(wx.HORIZONTAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_5.Add(self.username_label, 0, wx.ALL | wx.CENTER, 5)
sizer_5.Add(self.username_text, 0, wx.ALL, 5)
sizer_4.Add(self.password_label, 0, wx.ALL | wx.CENTER, 5)
sizer_4.Add(self.password_text, 0, wx.ALL, 5)
sizer_3.Add(self.login_button, 0, wx.ALL | wx.CENTER, 5)
sizer_3.Add(self.register_button, 0, wx.ALL | wx.CENTER, 5)
sizer_2.Add(sizer_5, 1, wx.EXPAND, 0)
sizer_2.Add(sizer_4, 1, wx.EXPAND, 0)
sizer_1.Add(self.bitmap, 1, wx.EXPAND, 0)
sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
sizer_1.Add(sizer_3, 1, wx.EXPAND, 0)
self.panel.SetSizer(sizer_1)
self.Layout()
def __set_events(self):
self.Bind(wx.EVT_BUTTON, self.on_login, self.login_button)
self.Bind(wx.EVT_BUTTON, self.on_register, self.register_button)
def on_login(self, event):
username = self.username_text.GetValue()
password = self.password_text.GetValue()
if username == 'admin' and password == 'admin':
self.Close()
frame = MainFrame(None, title='Welcome')
frame.Show()
def on_register(self, event):
pass
class MainFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(500, 350))
self.panel = wx.Panel(self)
self.text = wx.StaticText(self.panel, label='Welcome to the MainFrame!', pos=(50, 50))
if __name__ == '__main__':
app = wx.App()
login_frame = LoginFrame(None)
login_frame.Show()
app.MainLoop()
```
在上面的示例中,我们使用`wx.Image`和`wx.StaticBitmap`来在登录界面上插入图片背景。登录后,我们关闭登录界面并打开一个新的`MainFrame`来表示登录成功。您可以根据您自己的需求来修改这个示例并添加其他功能,如注册、密码重置等。