打印本文 打印本文 关闭窗口 关闭窗口
如何使用wxPython设计gui
作者:武汉SEO闵涛  文章来源:敏韬网  点击数6203  更新时间:2006/7/27  文章录入:mintao  责任编辑:mintao
bsp;                 [1,"Job", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                        [2,"Work", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                      ]
        for  c in self.config_column:
            self.ctrl.InsertColumn(c[0],c[1])
            self.ctrl.SetColumnWidth(c[0], c[2])
       
    def Refresh(self,workers):
       
        # filling data
        self.ctrl.DeleteAllItems()
       
       
        for i in range(0,5):
            index = self.ctrl.InsertStringItem(sys.maxint, "") #insert nothing, just get index
            self.ctrl.SetStringItem(index, 0, "val0") #0 means first column
            self.ctrl.SetStringItem(index, 1, "val1")
            self.ctrl.SetStringItem(index, 2, "val2")
               
        # after filling data, resize column
        for c in self.config_column:
            self.ctrl.SetColumnWidth(c[0], c[3])   
           
class jobList:
    def __init__(self, parent, id, details=None):
        assert(parent<>None)
        assert(id<>None)
        self.id=id
        self.ctrl=parent.FindWindowById(self.id)
        assert(self.ctrl<>None)
        self.details=details
       
        #init list header
        self.config_column=[  #id; #name; #size; #after filling data we resize
                        [0,"ID", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                        [1,"Owner", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                        [2,"Name", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                        [3,"Status", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                        [4,"Work", wxLIST_AUTOSIZE_USEHEADER, wxLIST_AUTOSIZE],
                      ]
        for  c in self.config_column:
            self.ctrl.InsertColumn(c[0],c[1])
            self.ctrl.SetColumnWidth(c[0], c[2])       
       
        self.MessageMap(self.ctrl)
       
           
    def Refresh(self,jobs):
        # data buffer shared by other
       
        #print list_data #debug
        self.ctrl.DeleteAllItems()
       
        for i in range(0,5):
            index = self.ctrl.InsertStringItem(sys.maxint, "") #insert nothing, just get index
            self.ctrl.SetStringItem(index, 0, "val0") #0 means first column
            self.ctrl.SetStringItem(index, 1, "val1")
            self.ctrl.SetStringItem(index, 2, "val2")
            self.ctrl.SetStringItem(index, 3, "val3") # add better conversion to text
            self.ctrl.SetStringItem(index, 4, "val4")
               
        # after filling data, resize column
        for c in self.config_column:
            self.ctrl.SetColumnWidth(c[0], c[3])   


#----- Message Map and Event Handler ----- begin
    def MessageMap(self,ctrl):
        EVT_LIST_ITEM_SELECTED(ctrl,self.id,self.OnItemSelected)
        EVT_LIST_ITEM_DESELECTED(ctrl,self.id,self.OnItemDeselected)
       
    def OnItemSelected(self,event):
        if self.details<>None:
            #dump everything about a job
            self.details.SetValue("rubbish data")
            pass
        pass
       
    def OnItemDeselected(self,event):
        print "OnListItemDeselected" #debug
        if self.details<>None:
            self.details.Clear()
        pass
#----- Message Map and Event Handler ----- end

       
#main application
class myApp(wxApp):
    def OnInit(self):
        #load ctrls from resources
        self.res = wxXmlResource("main.xrc")
        self.idf_main = self.res.LoadFrame(None, "idf_main")
        self.idc_main_menubar = self.res.LoadMenuBar("idc_main_menubar")
   

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页

打印本文 打印本文 关闭窗口 关闭窗口