Auparavant, nous avons conçu l'interface graphique et complété la fonction de traduction via un robot. Dans cette section, nous combinerons le contenu précédent pour terminer la production du traducteur.
importwximporturllib.request#Module d'importation importurllib.parseimportjsonclassMyFrame(wx.Frame):def__init__(self):wx.Frame.__init__(self,None,-1,translator,size=(600,200))panel=wx.Panel(self) # Créez un canevas, puis créez un ruban et placez-le sur le canevas #Créez un titre et placez-le dans le panneau self.title=wx.StaticText(panel, label='Simple Translator') #Créez un texte statique et placez-le dans le panneau dans self.translate=wx.StaticText(panel,label='Translation content:')#Créez une zone de texte de saisie et placez-la dans le panneau self.tran_slate=wx.TextCtrl(panel,style=wx.TE_LEFT)# Créez un bouton de traduction, placez-le dans le panneau self.button_ts=wx.Button(panel,label='Translation')#Liez l'événement du bouton, cliquez pour déclencher la fonction de traduction self.button_ts.Bind(wx.EVT_BUTTON,self. OnclickEventname)#Créez un bouton de fermeture, placez-le dans le panneau self.button_shutdown=wx.Button(panel,label='Close')#Événement de bouton de liaison, cliquez pour déclencher la fonction d'arrêt self.button_shutdown.Bind(wx.EVT_BUTTON, self.OnclickEvent)container_one=wx. BoxSizer(wx.HORIZONTAL)#Placez le texte statique et la zone de texte de saisie dans ce BoxSizer containers_one.Add(self.translate,proportion=0,flag=wx.ALL,border=7)container_one. Add(self.tran_slate,proportion =1,flag=wx.ALL,border=7)#Créer un BoxSizercontainer_two=wx.BoxSizer(wx.HORIZONTAL) disposé horizontalement#Mettez deux boutons dans ce BoxSizer containers_two.Add(self.button_ts, proportion =0,flag=wx.ALIGN_CENTER,border=4)container_two.Add(self.button_shutdown,proportion=0,flag=wx.ALIGN_CENTER,border=4)#Créer un BoxSizersizers disposé verticalement=wx.BoxSizer(wx .VERTICAL )#Mettez le contenu ci-dessus dans ce BoxSizer sizers.Add(self.title,proportion=0,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,border=10)sizers.Add( containers_one,proportion=0,flag =wx.EXPAND|wx.LEFT|wx.RIGHT,border=40)sizers.Add(container_two,proportion=0,flag=wx.ALIGN_CENTER|wx.TOP,border=10)panneau SetSizer(sizers)defOnclickEventname(self. ,e):globalpanelurnm=self.tran_slate.GetValue()url=http://fanyi.youdao.com/translate?smartresult=dict&smartresult=ruledata={}data['i']=urnmdata ['from']=' AUTO'data['to']='AUTO'data['smartresult']='dict'data['client']='fanyideskweb'data['salt']='15823411455528'data ['sign']=' d03024a90896a5eb31a74a9344657b0e'data['doctype']='json'data['version']='2.1'data['keyfrom']='fanyi.web'data['action']='FY_BY_REALTlME 'data=urllib.parse. urlencode(data).encode('utf-8')r=urllib.request.Request(url,data)r.add_header('User-Agent','Mozilla/5.0(WindowsNT10.0 ;Win64;x64)AppleWebKit/ 537.36(KHTML,likeGecko)Chrome/79.0.3945.130Safari/537.36')response=urllib.request.urlopen(r)html=response.read().decode('utf-8')trs =json.loads(html) result=trs['translateResult'][0][0]['tgt']print(Résultat de la traduction :,result)wx.MessageBox('Résultat de la traduction : %s'%result,'Périphérique de traduction')defOnclickEvent(self, e):self.Destroy()if__name__==__main__:app=wx.App()frame=MyFrame()frame.Show()app.MainLoop()
Étant donné que le code de cette section est dérivé des deux sections précédentes, nous ne répéterons pas l'analyse des mêmes parties de code. Examinons principalement les différences.
#Créez un bouton de traduction et placez-le dans le panneau self.button_ts=wx.Button(panel,label='Translation')#Liez l'événement bouton, cliquez pour déclencher la fonction de traduction self.button_ts.Bind(wx.EVT_BUTTON,self .OnclickEventname) #Créez un bouton d'arrêt et placez-le dans le panneau self.button_shutdown=wx.Button(panel,label='Close') #Liez l'événement de bouton, cliquez pour déclencher la fonction d'arrêt self.button_shutdown.Bind(wx. EVT_BUTTON, self.OnclickEvent)
Nous avons lié les événements aux boutons de traduction et de fermeture respectivement. Lorsque vous cliquez dessus, les fonctions correspondantes seront déclenchées. La fonction du bouton de fermeture est relativement simple, c'est-à-dire cliquer sur le bouton pour fermer la fenêtre.
defOnclickEvent(self,e):self.Destroy()
Lorsque nous cliquons sur le bouton de traduction, la fonction de traduction sera déclenchée. Le contenu de la fonction de traduction peut être appris en détail dans la section précédente. Ici, nous passons principalement un paramètre.
urnm=self.tran_slate.GetValue()
Transmettez les informations saisies sur l’interface GUI aux données.
data['i']=urne
Cela correspond au contenu que nous avons saisi dans la section précédente. Enfin, regardez cette ligne de code.
wx.MessageBox('Résultat de la traduction : %s'%result,'Traducteur')
Nous renvoyons les résultats de la traduction via une fenêtre, réalisant ainsi la fonction de traduction.
Enfin nous venons tester notre traducteur.
Le contenu du combat réel dans cette section est relativement basique, combinant principalement la programmation GUI et le contenu du robot d'exploration. Si vous êtes intéressé, vous pouvez également combiner la base de données pour compléter le contenu du combat réel. Le prochain combat réel combinera la base de données pour compléter davantage le contenu réel du combat. contenu de combat.