def OnSaveExport(self,event): ''' :保存和导出按钮事件响应 :param event:事件值 ''' if self.savebutton.GetLabel() == u'导出': dlg = wx.FileDialog(self,u'保存为...',\ os.getcwd(),\ style = wx.SAVE|wx.OVERWRITE_PROMPT,\ wildcard = ggv.wildcard) dlg.CenterOnParent() if dlg.ShowModal() == wx.ID_OK: filename = dlg.GetPath() ExcelWriter(filename,self.lang,self.dataitems) dlg.Destroy() else: if self.singleflag: self.langid = self.langid + self.datestart dlg = wx.MessageDialog(self, u'确定修改数据库?所有修\n改的数据都将写会数据库', u'数据修改确认', wx.YES_NO|wx.ICON_QUESTION) dlg.CenterOnParent() if dlg.ShowModal() == wx.ID_YES: dbs = DBstorage() dbs.update_data_many(self.langid, self.editdata) else: return None
def OnDeleteData(self,event): ''' :删除正行数据事件响应 :param event:事件值 ''' dlg = wx.MessageDialog(self, u'确定删除本数据项?\n此操作将无法撤回', u'数据项删除确认', wx.YES_NO|wx.ICON_QUESTION) dlg.CenterOnParent() if dlg.ShowModal() == wx.ID_YES: domain = self.grid.GetTable().GetValue(self.delrow,0) if self.singleflag: self.langid = self.langid + self.datestart dbs = DBstorage() dbs.delete_data(self.langid, domain) else: return None
def run(self): while True: if self.timeToQuit.isSet():break if self.inqueue.empty():break line = self.inqueue.get() line = line.split('\t') si = self.sitgsi(line[0], line[1:]) if ggv.pterminate:break gpercent = float('%.3f'%(1.0*(ggv.gaugesize-self.inqueue.qsize())/ggv.gaugesize))*100 #完成进度百分比 self.window.gauge.SetValue(gpercent) self.window.SetStatusText(u'%s网页语言识别中..%.1f%%'%(self.m,gpercent),1) if si: dbs = DBstorage() dbs.insert_data(ggv.lang_use, si) #存入数据库 self.window.rstlogUpadate(u'语 言:%s\r\n可信度:%s\r\n链 接:%s\r\n'%(ggv.lang_use,si[-2],si[-1])) #成功识别语言,在主界面显示 self.outqueue.put(si[-1]) self.window.SetStatusText(u'收集网站数:%d'%self.outqueue.qsize(),2) self.inqueue.task_done()
def OnCheck(self,event): ''' :查询按钮动作事件响应 :param event:事件值 ''' '''''' self.SetStatusText('',1) #清空状态栏信息 self.savebutton.Enable(False) #重新获取数据,save按钮不可用 if self.grid.GetNumberRows() > 0: #再次查询时清空还原 self.grid.ClearGrid() self.grid.DeleteRows(0,self.grid.GetNumberRows()) dbs = DBstorage() self.langid = ggv.langIds[ggv.langs.index(self.langlachoice.GetLabel())] #查询是语种数据库 self.datestart = self.startdate.GetValue() #获取输入的日期 if not self.ShowMessage(self.datestart): return None #判断日期是否为空 if self.singleflag: #查询单个数据表格 langtable = self.langid+self.datestart #构建待查询数据表名称 self.dataitems = dbs.fetchall_data_single(langtable)#查询数据库 else: self.dateend = self.enddate.GetValue() if not self.ShowMessage(self.dateend):return None #判断日期是否为空 if self.dateend < self.datestart:self.dateend,self.datestart = (self.datestart,self.dateend) #若截止日期小于开始日期则调换 self.datestart = self.datestart[:4] + '-' + self.datestart[4:6] + '-' + self.datestart[6:] self.dateend = self.dateend[:4] + '-' + self.dateend[4:6] + '-' + self.dateend[6:] if not self.ShowMessage(self.dateend):return None self.dataitems = dbs.fetchall_data_total(self.langid, (self.datestart,self.dateend)) if not self.dataitems: wx.MessageBox(u'这个时间段没有%s数据入库,\n请尝试查询其他时间段数据。'%self.lang, u'找不到相关数据', wx.OK|wx.ICON_INFORMATION) self.SetStatusText(u'查询到0个结果',1) return None self.grid.AppendRows(len(self.dataitems)) self.SetStatusText(u'查询到%s个结果'%len(self.dataitems),1) for i,row in enumerate(self.dataitems): for j,col in enumerate(row[1:]): self.grid.SetCellValue(i,j,str(col).encode('utf8')) self.savebutton.Enable(True)