咱这英语不太好,码代码呢又有规范癖,老是查查百度翻译,然而,每次都是这样的
用起来很上头
这里呢,为解决大家遇到小欧这样问题,小欧花了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()
感谢您的观看与支持!后续小欧会分享更多优质代码