使用python创建一个windows桌面在线翻译小程序

1.首先需要制造打包的gui界面 这里小编使用的是 wxFormBuilder  

下载地址:链接:https://pan.baidu.com/s/1DOe7TA6ap07ZsjcH4qzBIQ 密码:23qu

2.将wxFormBuilder  中创建的py文件名称叫做basewin.py  在同级目录下 新建一个相同的 main_win.py文件

basewin.py

# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc


###########################################################################
## Class BaseMainWind
###########################################################################

def make():
    a="hello"

make()


class BaseMainWind(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title="在线翻译神器   作者..xiejiangpeng", pos=wx.DefaultPosition,
                          size=wx.Size(500, 200), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.icon = wx.Icon('logo.ico', wx.BITMAP_TYPE_ICO)
        self.SetIcon(self.icon)

        self.SetSizeHintsSz(wx.Size(10, 10), wx.DefaultSize)

        bSizer2 = wx.BoxSizer(wx.VERTICAL)


        self.wxStaticText = wx.StaticText(self, wx.ID_ANY, u"请输入你需要翻译的单词:", wx.DefaultPosition, wx.DefaultSize, 0)
        self.wxStaticText.Wrap(-1)
        bSizer2.Add(self.wxStaticText, 0, wx.ALL, 5)

        self.text_main = wx.TextCtrl(self, wx.ID_ANY,wx.EmptyString, wx.DefaultPosition, wx.Size(500, 25),0)
        bSizer2.Add(self.text_main, 0, wx.ALL, 5)


        self.test_main2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(500, 25),0)
        bSizer2.Add(self.test_main2, 0, wx.ALL, 5)

        self.button_main = wx.Button(self, wx.ID_ANY, u"点击此处进行翻译", wx.DefaultPosition, wx.Size(125,25), 0)
        bSizer2.Add(self.button_main, 0, wx.ALL, 5)


        self.SetSizer(bSizer2)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.button_main.Bind(wx.EVT_BUTTON, self.main_button_click)
    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def main_button_click(self, event):
        event.Skip()



#
# app = wx.App()
# Fanyi=BaseMainWind(None)
# Fanyi.Show()
# Fanyi.main_button_click(event=Fanyi.button_main.Bind(wx.EVT_BUTTON, Fanyi.main_button_click))
# app.MainLoop()

main_win.py

# -*- coding: UTF-8 -*-
import wx
import basewin
import sys
import chardet
import  hashlib
import  random
import requests
import  time

q=None
appid = "20180808000192593"
SecretKey = "9wOGlrFsKcjer4m0Pr9V"
salt = str(random.random())
q=None

reload(sys)
sys.setdefaultencoding('utf-8')




class MianWindow(basewin.BaseMainWind):
    # 首先,咱们从刚刚源文件中将主窗体继承下来.就是修改过name属性的主窗体咯。
    def init_main_window(self):
        self.text_main.SetValue("")

    def main_button_click(self, event):
        def SignMake(q):
            # 创建index字符串
            index = appid + q + salt + SecretKey
            # 对index进行md5加密
            Md5 = hashlib.md5()
            Md5.update(index)
            str = Md5.hexdigest()
            return str

        q=str(self.text_main.GetValue())
        if (q.strip()==""):
            self.test_main2.SetValue("请在第一个输入框输入您需要翻译的单词.....")
        else:
            BaiDuFanYi = {'q': q, 'from': 'auto', 'to': 'auto', 'appid': appid, 'salt': salt, 'sign': SignMake(q)}
            try:
                BaiDuFanYi = requests.get("http://api.fanyi.baidu.com/api/trans/vip/translate", params=BaiDuFanYi)
                try:
                    self.test_main2.SetValue(BaiDuFanYi.json()["trans_result"][0]["dst"])
                except Exception:
                    self.test_main2.SetValue(BaiDuFanYi.json()["error_msg"] + "错误码:" + BaiDuFanYi.json()["error_code"])
            except Exception as EX:
                self.test_main2.SetValue("请求失败...检查电脑网络通畅")



if __name__ == '__main__':
    app = wx.App()
    main_win = MianWindow(None)
    main_win.init_main_window()
    main_win.Show()
    app.MainLoop()

3.文件代码写好之后 我们就可以使用Pyinstall进行打包  (文件同级目录)命令:pyinstaller main_win.py -p basewin.py --noconsole -i logo.ico

4.打包之后 就能看到此目录下出现这样的文件了

5.之后点击dist中的main_win.exe文件 然后就会出现软件程序如下

6.对软件进行程序检测

a.输入中文 

b.输入英文

c.输入特殊字符

d.输入空格以及不输入任何东西直接点击翻译

e.断网检测

6.bat文件代码

@echo off
::设置程序或文件的完整路径(必选)
set Program=%~dp0/dist/main_win/main_win.exe
 
::设置快捷方式名称(必选)
set LnkName=在线翻译神器

::设置程序的工作路径,一般为程序主目录,此项若留空,脚本将自行分析路径(可选)
set WorkDir=

::设置快捷方式显示的说明(可选)
set Desc=用于日常翻译 本程序需要连接网络...

if not defined WorkDir call:GetWorkDir "%Program%"
(echo Set WshShell=CreateObject("WScript.Shell"^)
echo strDesKtop=WshShell.SpecialFolders("DesKtop"^)
echo Set oShellLink=WshShell.CreateShortcut(strDesKtop^&"\%LnkName%.lnk"^)
echo oShellLink.TargetPath="%Program%"
echo oShellLink.WorkingDirectory="%WorkDir%"
echo oShellLink.WindowStyle=1
echo oShellLink.Description="%Desc%"
echo oShellLink.Save)>makelnk.vbs
echo 桌面快捷方式创建成功!
makelnk.vbs
del /f /q makelnk.vbs
exit
goto :eof
:GetWorkDir
set WorkDir=%~dp1
set WorkDir=%WorkDir:~,-1%
goto :eof

好啦最后在分享一份软件给你们 百度云地址:链接:链接:https://pan.baidu.com/s/1qe_TKSYyfNoVuv_Dp8Zn-g 密码:3g0j

解压之后 点击创建快捷方式到桌面 在桌面打开应用即可使用

猜你喜欢

转载自blog.csdn.net/Tester_xjp/article/details/81704951
今日推荐