话不多说,直接上代码。

Component文件:

# coding:utf-8
from tkinter import *
from tkinter import ttk
from tkinter import scrolledtext
import tkinter.messagebox

# 作者:C丶小明
# 博客园地址:https://www.cnblogs.com/mingmingming/

url = "请选择"
class Comp:
    def __init__(self,master):
        self.master = master
    
    def label(self,properties,padx = 3,pady = 2,ipadx = 5,ipady = 1):
        for name,x,y in properties:
            self.label = Label(self.master,text = name)
            self.label.grid(row = x,column = y,padx = padx,pady = pady,ipadx = ipadx,ipady = ipady)
    
    def entry(self,properties,padx = 3,pady = 2,ipadx = 5,ipady = 1,columnspan = 4,sticky = N):
        self.boxes = []
        for width,insert,x,y in properties:
            self.entry  = Entry(self.master,width = width)
            self.entry.insert(END,insert)
            self.entry.grid(row = x,column = y,columnspan = columnspan,padx = padx,pady = pady,ipadx = ipadx,ipady = ipady,sticky = sticky)
            self.boxes.append(self.entry)
            
    def get_entry(self):
        self.get_data = []
        for box in self.boxes:
            self.data = box.get()
            self.get_data.append(self.data)
        return self.get_data

    def button(self,properties,padx = 1,pady = 2,ipadx = 2,ipady = 1):
        for text,x,y,command in properties:
            self.button = Button(self.master,text = text,command = command)
            self.button.grid(row = x,column = y,padx = padx,pady = pady,ipadx = ipadx,ipady = ipady)

    def button_cancel(self):
        self.master.destroy()

            
    def scrolledtext(self,width,height,x,y,padx = 8,pady = 8,ipadx = 5,ipady = 1):
        self.scrolledtext = scrolledtext.ScrolledText(self.master,width = width,height = height)     
        self.scrolledtext.grid(row = x,column = y,columnspan = 5,padx = padx,pady = pady,ipadx = ipadx,ipady = ipady)

    def scrolledtext_insert(self,getdata_function):
        #for data in getdata_function:
        self.scrolledtext.insert(END,getdata_function)

    def scrolledtext_delete(self):
        #for data in getdata_function:
        self.scrolledtext.delete('1.0', 'end')

    def combobox(self,values,x,y,width = 35,columnspan = 5,padx = 3,pady = 1,ipadx = 5,ipady = 1,sticky = N):
        self.select = ttk.Combobox(self.master,width = width,state = 'readonly') # 初始化
        self.select['values'] = (values)  # 选项
        
        # 处理事件
        def combobox_trigger(*args):
            global url
            url = self.select.get()    #获取选中的值

        self.select.set(url)    # 下拉框提示文字    
        #self.select.current(0)  # 默认选项        
        self.select.bind("<<ComboboxSelected>>",combobox_trigger)  # 选择触发事件
        self.select.grid(row = x, column = y,columnspan = columnspan,padx = padx,pady = pady,ipadx = ipadx,ipady = ipady,sticky = sticky)
        return url
   
    def messagebox(self , features , check1 , check1_return):
        if check1 in features:
            tkinter.messagebox.showinfo('提示',check1_return)
        else:
            tkinter.messagebox.showwarning('提示','新增失败!')

    def radiobutton(self,properties,sticky = W):
        var = IntVar()
        for text,x,y,value in properties:
            radiobutton = Radiobutton(self.master, text= text, variable = var, value = value)
            radiobutton.grid(row = x,column = y ,columnspan = 4,sticky = sticky)
            radiobutton.flash()

if __name__ == "__main__":
    kk = Tk()
    c = Comp(kk)
    c.combobox(("select1","select2"),1,0)

    kk.mainloop()

  

TranslationTools文件,翻译小工具的主要部分:

# -*- coding: utf-8 -*-
from docx import Document
from tkinter import *
from googletrans import Translator
import tkinter.filedialog
import Component

# 作者:C丶小明
# 博客园地址:https://www.cnblogs.com/mingmingming/


class Tr:
    def __init__(self):
        self.main = Tk()
        self.mainwindow = Component.Comp(self.main)
        self.main.geometry('430x400')
        self.main.title(u"翻译工具      作者:C丶小明")
        self.main.resizable(width=False,height=False)
        self.translator = Translator(['translate.google.cn'])

    def returnselect(self):
        all_url = ("zh-CN","en")
        url = self.mainwindow.combobox(("zh-CN","en"),0,1,pady = 25)
        return False if url == "请选择" else url


    def interface(self):
        # 文本
        self.mainwindow.label([
            ("翻译语言:",0,0),
            ("选择文档路径:",1,0),
            ("文档行数:",2,0),
            ("翻译文档位置:",3,0),
            ])
        # 下拉列表
        Language = self.mainwindow.combobox(("zh-CN","en"),0,1,pady = 25)
        
        path = StringVar()
        def selectPath():
            # 文件选择框
            path_ = tkinter.filedialog.askopenfilename(filetypes=[("",".docx")])            
            # path = StringVar() 配合使用,更新显示地址
            path.set(path_)
            # 选择文档的路径
            t = path_
            # 打开文档,空白为新建文档
            new_word = Document()
            document = Document(t)

            sum_row = len(document.paragraphs)
            Label(self.main,text = sum_row).grid(row = 2,column = 1,padx = 8)
            
            # 循环读取段落
            for i in document.paragraphs:
                # 读取内容,进行翻译
                word_text = self.translator.translate(i.text, dest=self.returnselect()).text
                # 翻译内容写入文档
                new_word.add_paragraph(word_text)
            newpath = r"F:\翻译文档.docx"
            new_word.save(newpath)
            Label(self.main,text = newpath).grid(row = 3,column = 1)
                
        # 显示选择文件地址
        Label(self.main,width =35,height = 3,wraplength = 230,textvariable = path).grid(row = 1,column = 1,padx = 8)
        # 按钮
        self.mainwindow.button([
            ("选择",1,2,selectPath)
            ],ipadx = 8,ipady = 1)
        self.main.mainloop()



if __name__ == "__main__":
    t = Tr()
    t.interface()

 

 运行结果: