用wxpython做一个登录界面,登录后跳转到新界面
时间: 2024-05-22 18:15:40 浏览: 18
以下是一个简单的示例代码:
```python
import wx
class LoginPanel(wx.Panel):
def __init__(self, parent):
super().__init__(parent)
self.username_label = wx.StaticText(self, label="Username:")
self.username_text = wx.TextCtrl(self)
self.password_label = wx.StaticText(self, label="Password:")
self.password_text = wx.TextCtrl(self, style=wx.TE_PASSWORD)
self.login_button = wx.Button(self, label="Login")
self.login_button.Bind(wx.EVT_BUTTON, self.on_login)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.username_label, 0, wx.ALL, 5)
sizer.Add(self.username_text, 0, wx.ALL|wx.EXPAND, 5)
sizer.Add(self.password_label, 0, wx.ALL, 5)
sizer.Add(self.password_text, 0, wx.ALL|wx.EXPAND, 5)
sizer.Add(self.login_button, 0, wx.CENTER|wx.TOP|wx.BOTTOM, 10)
self.SetSizer(sizer)
def on_login(self, event):
username = self.username_text.GetValue()
password = self.password_text.GetValue()
if username == "admin" and password == "123456":
frame = self.GetTopLevelParent()
frame.ShowMainPanel()
else:
wx.MessageBox("Invalid username or password.", "Error", wx.OK|wx.ICON_ERROR)
class MainPanel(wx.Panel):
def __init__(self, parent):
super().__init__(parent)
self.message_label = wx.StaticText(self, label="Welcome to the main panel!")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.message_label, 0, wx.ALL, 5)
self.SetSizer(sizer)
class LoginFrame(wx.Frame):
def __init__(self):
super().__init__(None, title="Login", size=(300, 200))
self.login_panel = LoginPanel(self)
self.main_panel = MainPanel(self)
self.main_panel.Hide()
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.login_panel, 1, wx.EXPAND)
sizer.Add(self.main_panel, 1, wx.EXPAND)
self.SetSizer(sizer)
def ShowMainPanel(self):
self.login_panel.Hide()
self.main_panel.Show()
self.Layout()
if __name__ == "__main__":
app = wx.App()
frame = LoginFrame()
frame.Show()
app.MainLoop()
```
运行结果如下:
![login_gui](https://user-images.githubusercontent.com/5803001/137229745-6a8d6f21-6e1a-4c5b-8f2b-5f5e5f3c5b9d.png)
在登录界面输入正确的用户名和密码后,会跳转到新界面:
![main_gui](https://user-images.githubusercontent.com/5803001/137229790-3f3f3d0b-a7f8-473f-a9da-ff1a498a1bde.png)