translate、PySimpleGUI、pyperclip规范变量名生成器

困难

咱这英语不太好,码代码呢又有规范癖,老是查查百度翻译,然而,每次都是这样的
在这里插入图片描述
在这里插入图片描述
用起来很上头

启程

这里呢,为解决大家遇到小欧这样问题,小欧花了3小时01分的时间写完了这款变量名生成器希望对大家有帮助

界面
def display_gui():
    '''界面'''
    layout = [
        [sg.Radio('变量名/函数名(下划线)', 'RADIO1', default=True), sg.Radio('类名(驼峰命名法)', 'RADIO1'),
         sg.Radio('前端命名(连接符)', 'RADIO1'), sg.Radio('常量(全大写)', 'RADIO1')],
        [sg.Text('请输入中文:', size=(9, 1)), sg.Input(key='_Chinese_')],
        [sg.Text('变量:', size=(9, 1)), sg.Input(key='_Val_')],
        [sg.Btn('生成', key='_Head_',bind_return_key='enter')]
    ]
    # 创建窗口,引入布局,并进行初始化
    # 创建时,必须要有一个名称,这个名称会显示在窗口上
    window = sg.Window('变量生成器', layout=layout, finalize=True)
    while True:  # 创建一个事件循环,否则窗口运行一次就会被关闭
        event, values = window.Read()
        # print(window.Element('RADIO1'))
        if event is None:  # 如果事件的值为 None,表示点击了右上角的关闭按钮
            break
        if event == '_Head_':  # 当获取到事件时,处理逻辑
            chinese = values['_Chinese_']
            try:
                if values[0]:
                    val = gender_val(chinese, '变量')
                elif values[1]:
                    val = gender_val(chinese, '类名')
                elif values[2]:
                    val = gender_val(chinese, '前端')
                elif values[3]:
                    val = gender_val(chinese, '常量')
                # 将生成的变量映射到变量名框
                window.Element('_Val_').Update(val)
                # 将其复制到截切版
                pyperclip.copy(val)
                sg.popup_timed('已经复制到剪切板',auto_close_duration=1.5)
            except:
                sg.popup('请联网')
                continue
    window.close()

这里采用了PySimpleGUI,他是对QT,wxPython,Tkinter的一个封装,图形界面规范简单、规范、易懂,很适合平时做一些小工具

变量生成逻辑
def gender_val(need, val_type):
    '''变量生成'''
    translator = Translator(from_lang="chinese", to_lang="english")
    translation = translator.translate(need).lower().replace('.', '')  # 翻译,将所有字符转小写,替换.消掉
    translations = translation.split(' ')
    if val_type == '类名':
        val = ''
        for trans in translations:
            val += trans.capitalize()  # 将首字母转大写
    elif val_type == '变量':
        val = '_'.join(translations)
    elif val_type == '常量':
        val = '_'.join(translations).upper()  # 将所有字符大写
    elif val_type == '前端':
        val = '-'.join(translations)
    return val

这里运用了translate翻译包,然后运用不同的应用逻辑对生成的字符串进行处理

完整代码

from translate import Translator
import PySimpleGUI as sg
import pyperclip

def gender_val(need, val_type):
    '''变量生成'''
    translator = Translator(from_lang="chinese", to_lang="english")
    translation = translator.translate(need).lower().replace('.', '')  # 翻译,将所有字符转小写,替换.消掉
    translations = translation.split(' ')
    if val_type == '类名':
        val = ''
        for trans in translations:
            val += trans.capitalize()  # 将首字母转大写
    elif val_type == '变量':
        val = '_'.join(translations)
    elif val_type == '常量':
        val = '_'.join(translations).upper()  # 将所有字符大写
    elif val_type == '前端':
        val = '-'.join(translations)
    return val


def display_gui():
    '''界面'''
    layout = [
        [sg.Radio('变量名/函数名(下划线)', 'RADIO1', default=True), sg.Radio('类名(驼峰命名法)', 'RADIO1'),
         sg.Radio('前端命名(连接符)', 'RADIO1'), sg.Radio('常量(全大写)', 'RADIO1')],
        [sg.Text('请输入中文:', size=(9, 1)), sg.Input(key='_Chinese_')],
        [sg.Text('变量:', size=(9, 1)), sg.Input(key='_Val_')],
        [sg.Btn('生成', key='_Head_',bind_return_key='enter')]
    ]
    # 创建窗口,引入布局,并进行初始化
    # 创建时,必须要有一个名称,这个名称会显示在窗口上
    window = sg.Window('变量生成器', layout=layout, finalize=True)
    while True:  # 创建一个事件循环,否则窗口运行一次就会被关闭
        event, values = window.Read()
        # print(window.Element('RADIO1'))
        if event is None:  # 如果事件的值为 None,表示点击了右上角的关闭按钮
            break
        if event == '_Head_':  # 当获取到事件时,处理逻辑
            chinese = values['_Chinese_']
            try:
                if values[0]:
                    val = gender_val(chinese, '变量')
                elif values[1]:
                    val = gender_val(chinese, '类名')
                elif values[2]:
                    val = gender_val(chinese, '前端')
                elif values[3]:
                    val = gender_val(chinese, '常量')
                # 将生成的变量映射到变量名框
                window.Element('_Val_').Update(val)
                # 将其复制到截切版
                pyperclip.copy(val)
                sg.popup_timed('已经复制到剪切板',auto_close_duration=1.5)
            except:
                sg.popup('请联网')
                continue
    window.close()



if __name__ == '__main__':
    display_gui()

展示

在这里插入图片描述

感谢

感谢您的观看与支持!后续小欧会分享更多优质代码

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值