0
我在学习wxpython.I阅读文档,并在与它一起玩之后,现在我创建了一个包含一些面板的小应用程序。在一个面板上,我创建了一个登录页面。 OnSubmit
的登录面板,我想切换到另一个面板。我不知道该怎么做。这里是我的代码(ScreenGrab可以帮助你): (不需要的功能和类定义这里没有显示):切换到另一个面板wxpython
Toolbook_Demo.py
class ToolbookDemo(wx.Toolbook) :
def __init__(self, parent) :
print ""
wx.Toolbook.__init__(self, parent, wx.ID_ANY, style=
wx.BK_DEFAULT
#wx.BK_TOP
#wx.BK_BOTTOM
#wx.BK_LEFT
#wx.BK_RIGHT
)
# Make an image list using the LBXX images
il = wx.ImageList(32, 32)
for x in range(4) :
imgObj = getattr(images, 'LB%02d' % (x+1))
bmp = imgObj.GetBitmap()
il.Add(bmp)
self.AssignImageList(il)
imageIdGenerator = getNextImageID(il.GetImageCount())
panellogin = userlogin.TabPanel(self)
print panellogin.Hide()
notebookPageList = [ (userlogin.TabPanel(self), 'Login'),
(panelTwo.TabPanel(self), 'Panel Two'),
(panelThree.TabPanel(self), 'Panel Three'),
(panelOne.TabPanel(self), 'Home')]
imID = 0
for page, label in notebookPageList :
self.AddPage(page, label, imageId=imageIdGenerator.next())
imID += 1
# An undocumented method in the official docs :
self.ChangeSelection(0) # Select and view this notebook page.
# Creates no events - method SetSelection does.
self.Bind(wx.EVT_TOOLBOOK_PAGE_CHANGING, self.OnPageChanging)
self.Bind(wx.EVT_TOOLBOOK_PAGE_CHANGED, self.OnPageChanged)
userlogin.py
import wx
class TabPanel(wx.Panel) :
""" This will be [inserted into] the first notebook tab. """
def __init__(self, parent) :
wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
sizer = wx.FlexGridSizer(rows=3, cols=2, hgap=5, vgap=15)
# Username
self.txt_Username = wx.TextCtrl(self, 1, size=(150, -1))
lbl_Username = wx.StaticText(self, -1, "Username:")
sizer.Add(lbl_Username,0, wx.LEFT|wx.TOP| wx.RIGHT, 50)
sizer.Add(self.txt_Username,0, wx.TOP| wx.RIGHT, 50)
# Password
self.txt_Password = wx.TextCtrl(self, 1, size=(150, -1), style=wx.TE_PASSWORD)
lbl_Password = wx.StaticText(self, -1, "Password:")
sizer.Add(lbl_Password,0, wx.LEFT|wx.RIGHT, 50)
sizer.Add(self.txt_Password,0, wx.RIGHT, 50)
# Submit button
btn_Process = wx.Button(self, -1, "&Login")
self.Bind(wx.EVT_BUTTON, self.OnSubmit, btn_Process)
sizer.Add(btn_Process,0, wx.LEFT, 50)
self.SetSizer(sizer)
def OnSubmit(self, event):
UserText = self.txt_Username.GetValue()
PasswordText = self.txt_Password.GetValue()
if authentcated(UserText, PasswordText):
#Switch to another panel
#Hide login panel until current session expires
#Show another panels only
感谢您的回复。你是对的。但是,我无法切换到另一个页面,点击第一个面板中显示的登录按钮 – trex 2014-11-03 06:57:33