wxPython实现列表增删改查功能
本文实例为大家分享了wxPython实现列表增删改查的具体代码,供大家参考,具体内容如下
#-*-coding: UTF-8 -*-
import wx
class AddBanjiListEditAndDelDialog(wx.Dialog):
print("We are now doing the AddBanjiListDialog Handle!!!")
print(">>><>><><>fdsaflkdsajfldsa")
def __init__(self,parent,size,index):
#print("虐self.GetPosition():",self.GetPosition())
print("虐MyFrame.GetPosition():",MyFrame.GetPosition())
print("虐MyFrame.SonHostPanelList[index][0].GetPosition():",
MyFrame.SonHostPanelList[index][0].GetPosition())
#wx.Dialog.__init__(self,parent=MyFrame.SonHostPanelList[index][0],size=size,pos=(100,30*index)+MyFrame.GetPosition(),style=wx.DIALOG_NO_PARENT)
wx.Dialog.__init__(self,parent=parent,size=size,pos=(100,30*index)+MyFrame.GetPosition(),style=wx.DIALOG_NO_PARENT)
self.index = index
self.InitUI()
#self.Centre()
self.ShowModal()
def InitUI(self):
if 0:
self.p = wx.Panel(self)
self.p.SetBackgroundColour("#444444")
self.EditButton = wx.Button(self.p,
id=wx.ID_ANY,
label=u"编辑",
pos=(0,0),
size=(100,29),
style=wx.BORDER_NONE)
self.DeleteButton = wx.Button(self.p,
id=wx.ID_ANY,
label=u"删除",
pos=(0,30),
size=(100,30),
style=wx.BORDER_NONE)
self.EditButton.SetBackgroundColour("white")
self.DeleteButton.SetBackgroundColour("white")
self.EditButton.Bind(event=wx.EVT_BUTTON,
handler=self.EditButtonHandler,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.DeleteButton.Bind(event=wx.EVT_BUTTON,
handler=self.DelButtonHandler,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
else:
#self.p = MyFrame.SonHostPanelList[self.index][0]
#self.p = MyFrame.SonHostPanel
#print(MyFrame.SonHostPanelList[self.index][0])
print("30*self.index:",30*self.index)
self.p = wx.Panel(self)
self.p.SetBackgroundColour("#444444")
#self.p.SetPosition((0,30*self.index))
print("self.p.GetPostion():",self.p.GetPosition())
if 1:
self.EditButton = wx.Button(self.p,
id=wx.ID_ANY,
label=u"编辑",
pos=(0,0),
size=(100,29),
style=wx.BORDER_NONE)
self.DeleteButton = wx.Button(self.p,
id=wx.ID_ANY,
label=u"删除",
pos=(0,30),
size=(100,30),
style=wx.BORDER_NONE)
self.EditButton.SetBackgroundColour("white")
self.DeleteButton.SetBackgroundColour("white")
self.EditButton.Bind(event=wx.EVT_BUTTON,
handler=self.EditButtonHandler,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.DeleteButton.Bind(event=wx.EVT_BUTTON,
handler=self.DelButtonHandler,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
def EditButtonHandler(self,event):
#MyFrame.SonSonPanel0StaticText.SetLabelText("jjjjj")
self.Destroy()
print("EditButtonHandler !!!!")
def DelButtonHandler(self,event):
#MyFrame.SonSonPanel0.Destroy()
if 1:
print("我的当前的index的value:",self.index)
MyFrame.SonHostPanelList[self.index][0].Destroy()
print("len(MyFrame.SonHostPanelList):",len(MyFrame.SonHostPanelList))
del MyFrame.SonHostPanelList[self.index]
print("len(MyFrame.SonHostPanelList):",len(MyFrame.SonHostPanelList))
TotalLen = len(MyFrame.SonHostPanelList)
for i in range(0,TotalLen):
print("i's value:",i)
#setValue = ()
Getvalue = MyFrame.SonHostPanelList[i][0].GetPosition()
#print("MyFrame.SonHostPanelList[self.index][0].GetPosition()'s value:",value)
Setvalue = (10,10+30*i)
MyFrame.SonHostPanelList[i][0].SetPosition(Setvalue)
MyFrame.SonHostPanelList[i][0].SetId(i)
MyFrame.SonHostPanelList[i][0].Bind(event=wx.EVT_LEFT_UP,
#handler=self.SonSonPanel0StaticTextEventLeftUp,
handler = lambda evt,i=MyFrame.SonHostPanelList[i][0].GetId():MyFrame.SonSonPanel0EventLeftUp(evt,i),
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
#del MyFrame.SonHostPanelList[self.index]
MyFrame.SonHostPanel.Refresh()
else:
TotalLen = len(MyFrame.SonHostPanelList)
for i in range(0,TotalLen):
#MyFrame.SonHostPanelList[i][0].SetId(i)
if(MyFrame.SonHostPanelList[i][0].GetId() == self.index):
print("我们获取 删除的的panel的id值了self.index:",self.index)
print("我们获取 删除的的panel的id值了self.index:",i)
self.Destroy()
print("DelButtonHandler !!!")
class MyTestPanel(wx.Frame):
def __init__(self,parent,size,postion):
self.HostFrame = wx.Frame.__init__(self,parent=parent,size=size,pos=postion)
self.HostPanel = wx.Panel(self,
id = wx.ID_ANY,
pos=(10,10),
size=(300,500),
style=wx.TAB_TRAVERSAL,
)
self.HostPanel.SetBackgroundColour("green")
self.SonHostPanel = wx.Panel(self.HostPanel,
id = wx.ID_ANY,
pos=(10,10),
size=(250,400),
style=wx.TAB_TRAVERSAL,
)
self.SonHostPanel.SetBackgroundColour("white")
self.SonHostPanelList = []
self.SonHostPanelCellList = [0,0,0,0]
self.SonHostPanel.Bind(event=wx.EVT_LEFT_DOWN,
handler=self.SonHostPanelLeftDown,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.Show(True)
def SonHostPanelLeftDown(self,event):
print(len(self.SonHostPanelList))
print(len(self.SonHostPanelCellList))
SonHostPanelListLen = len(self.SonHostPanelList)
TempSonHostPanelCellList = [0,0,0,0]
#self.SonHostPanelList.append(self.SonHostPanelCellList)
self.SonHostPanelList.append(TempSonHostPanelCellList)
self.SonHostPanelList[SonHostPanelListLen][0] = wx.Panel(self.SonHostPanel,
id = SonHostPanelListLen,
pos=(10,10+SonHostPanelListLen*30),
size=(150,30),
style=wx.TAB_TRAVERSAL,
)
self.SonHostPanelList[SonHostPanelListLen][1] = wx.StaticText(self.SonHostPanelList[SonHostPanelListLen][0],
id=wx.ID_ANY,
label = str(SonHostPanelListLen),
pos=(10,5),
size=(100,25))
self.SonHostPanelList[SonHostPanelListLen][0].Bind(event=wx.EVT_ENTER_WINDOW,
handler=self.SonSonPanel0StaticTextEventEnterWindow,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.SonHostPanelList[SonHostPanelListLen][0].Bind(event=wx.EVT_LEAVE_WINDOW,
handler=self.SonSonPanel0StaticTextEventLeaveWindow,
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.SonHostPanelList[SonHostPanelListLen][0].Bind(event=wx.EVT_LEFT_DOWN,
handler=self.SonSonPanel0StaticTextEventLeftDown,
#handler = lambda evt,i=self.SonHostPanelList[SonHostPanelListLen][0].GetId():self.SonSonPanel0StaticTextEventLeftDown(evt,i),
#source=SonHostPanelListLen,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.SonHostPanelList[SonHostPanelListLen][0].Bind(event=wx.EVT_LEFT_UP,
#handler=self.SonSonPanel0StaticTextEventLeftUp,
handler = lambda evt,i=self.SonHostPanelList[SonHostPanelListLen][0].GetId():self.SonSonPanel0EventLeftUp(evt,i),
source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
#self.SonSonPanel0.SetBackgroundColour("red")
self.SonHostPanelList[SonHostPanelListLen][0].SetBackgroundColour("red")
self.SonHostPanel.Refresh()
print("SonHostPanelLeftDown handle!!!")
def SonSonPanel0EventEnterWindow(self,event):
print("SonSonPanel0EventEnterWindow handle!!!")
def SonSonPanel0EventLeaveWindow(self,event):
print("SonSonPanel0EventLeaveWindow handle!!!")
def SonSonPanel0EventLeftDown(self,event):
#print("获取当前的位置:",event.GetPosition())
print("SonSonPanel0EventLeftDown handle!!!")
def SonSonPanel0EventLeftUp(self,event,index):
#print("event.GetPostion:",event.GetPosition())
#print("SonSonPanel0.GetPostion:",self.SonSonPanel0.GetPosition())
print("当前tony的定位的index值:",index)
self.AddBanjiListEditAndDelDialogValue = AddBanjiListEditAndDelDialog(self,size=(100,60),index=index)
if 0:
self.ClasspopupDialog = wx.Panel(self,
id=wx.ID_ANY,
pos=(152+10,5)+self.SonSonPanel0.GetPosition(),
size=(50,50))
self.ClasspopupDialog.SetBackgroundColour("#FFE1FF")
self.ClasspopupDialog.Refresh()
self.ClasspopupDialog.Bind(event=wx.EVT_ENTER_WINDOW,
handler=self.ClasspopupDialogEventEnterWindow,
#source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.ClasspopupDialog.Bind(event=wx.EVT_LEAVE_WINDOW,
handler=self.ClasspopupDialogEventEnterWindow,
#source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.ClasspopupDialog.Bind(event=wx.EVT_LEFT_DOWN,
handler=self.ClasspopupDialogLeftDown,
#source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
self.ClasspopupDialog.Bind(event=wx.EVT_LEFT_UP,
handler=self.ClasspopupDialogLeftUp,
#source=None,
id=wx.ID_ANY,
id2=wx.ID_ANY)
print("SonSonPanel0EventLeftUp handle !!!")
def SonSonPanel0StaticTextEventEnterWindow(self,event):
print("SonSonPanel0StaticTextEventEnterWindow handle!!!")
def SonSonPanel0StaticTextEventLeaveWindow(self,event):
print("SonSonPanel0StaticTextEventLeaveWindow handle!!!")
def SonSonPanel0StaticTextEventLeftDown(self,event):
#print(event.source
#print("当前的索引:",str(index))
print("Get Now Event postion:",event.GetPosition())
print("SonSonPanel0StaticTextEventLeftDown handle!!!")
def SonSonPanel0StaticTextEventLeftUp(self,event,index):
print("当前的索引:",str(index))
#self.AddBanjiListEditAndDelDialogValue = AddBanjiListEditAndDelDialog(self,size=(100,60))
print("SonSonPanel0StaticTextEventLeftUp handle!!!")
def ClasspopupDialogEventEnterWindow(self,event):
print("ClasspopupDialogEventEnterWindow handle!!!")
def ClasspopupDialogEventLeaveWindow(self,event):
print("ClasspopupDialogEventLeaveWindow handle!!!")
def ClasspopupDialogLeftDown(self,event):
print("ClasspopupDialogLeftDown handle!!!")
def ClasspopupDialogLeftUp(self,event):
print("ClasspopupDialogLeftUp handle!!!")
if __name__ == "__main__":
print("do the function")
MyApp = wx.App(False)
MyFrame =MyTestPanel(None,size=(400,600),postion=(20,30))
MyApp.MainLoop()
以上是 wxPython实现列表增删改查功能 的全部内容, 来源链接: utcz.com/z/346155.html