python

超轻量级php框架startmvc

wxPython实现列表增删改查功能

更新时间:2020-08-08 02:36 作者:startmvc
本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。