wxPython實現(xiàn)列表增刪改查功能
更新時間:2019年11月19日 10:14:48 作者:卡圖盧斯
這篇文章主要為大家詳細介紹了wxPython實現(xiàn)列表增刪改查功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了wxPython實現(xiàn)列表增刪改查的具體代碼,供大家參考,具體內(nèi)容如下
#-*-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()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python用WxPython庫實現(xiàn)無邊框窗體和透明窗體實現(xiàn)方法詳解
- python圖形開發(fā)GUI庫wxpython使用方法詳解
- wxpython自定義下拉列表框過程圖解
- wxPython修改文本框顏色過程解析
- python wxpython 實現(xiàn)界面跳轉(zhuǎn)功能
- wxpython多線程防假死與線程間傳遞消息實例詳解
- wxpython實現(xiàn)按鈕切換界面的方法
- wxPython繪圖模塊wxPyPlot實現(xiàn)數(shù)據(jù)可視化
- wxPython+Matplotlib繪制折線圖表
- wxPython實現(xiàn)繪圖小例子
- wxPython實現(xiàn)畫圖板
- wxPython之wx.DC繪制形狀
- wxpython+pymysql實現(xiàn)用戶登陸功能
- wxPython電子表格功能wx.grid實例教程
- wxPython實現(xiàn)帶顏色的進度條
- wxPython多個窗口的基本結(jié)構(gòu)
- wxPython實現(xiàn)分隔窗口
- python圖形界面開發(fā)之wxPython樹控件使用方法詳解
相關文章
Python繪制圣誕樹+落葉+雪花+背景音樂+浪漫彈窗?五合一版圣誕樹
馬上不就到圣誕節(jié)了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,今天小編給大家介紹的是通過Python繪制的五合一版圣誕樹:圣誕樹+落葉+雪花+背景音樂+浪漫彈窗。感興趣的小伙伴快來學習一下吧2021-12-12利用django和mysql實現(xiàn)一個簡單的web登錄頁面
這篇文章主要給大家介紹了關于如何利用django和mysql實現(xiàn)一個簡單的web登錄頁面的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-05-05Python使用tarfile模塊實現(xiàn)免費壓縮解壓
Python自帶的tarfile模塊可以方便讀取tar歸檔文件,厲害的是可以處理使用gzip和bz2壓縮歸檔文件tar.gz和tar.bz2,這篇文章主要介紹了Python使用tarfile模塊實現(xiàn)免費壓縮解壓,需要的朋友可以參考下2024-03-03基于Python+Appium實現(xiàn)京東雙十一自動領金幣功能
一年一度的雙十一即將來臨,各大平臺都在搞活動,京東天貓忙的不易樂乎,做任務領金幣的過程真的好無聊,今天小編給大家分享一篇教程通關Python+Appium實現(xiàn)京東雙十一自動領金幣功能,需要的朋友可以參考下2019-10-10python中常見的幾種音頻數(shù)據(jù)讀取、保存方式總結(jié)
Python是一種非常適合進行音頻處理和音頻分析的語言,因為它有許多強大的庫可以使用,下面這篇文章主要給大家介紹了關于python中常見的幾種音頻數(shù)據(jù)讀取、保存方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06