欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-10 21:49:50
...

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

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

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

 

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.打包之后 就能看到此目录下出现这样的文件了

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

 

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

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

6.对软件进行程序检测

a.输入中文 

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

b.输入英文

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

c.输入特殊字符

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

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

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

e.断网检测

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

 

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

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

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