-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRuneConverter.py
71 lines (62 loc) · 2.53 KB
/
RuneConverter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import string
import PySimpleGUI as sg
AlphabetToRuneDict = {
"A": "ᚪ", "B": "ᛒ", "C": "ᚳ", "D": "ᛞ", "E": "ᛖ",
"F": "ᚠ", "G": "ᚷ", "H": "ᚻ", "I": "ᛁ", "J": "ᛄ",
"K": "ᛣ", "L": "ᛚ", "M": "ᛗ", "N": "ᚾ", "O": "ᚩ",
"P": "ᛈ", "Q": "ᚴ", "R": "ᚱ", "S": "ᛋ", "T": "ᛏ",
"U": "ᚢ", "V": "ᛓ", "W": "ᚹ", "X": "ᛣ", "Y": "ᚣ",
"Z": "ᛉ"
}
def AlphabetToRune(s):
answer = ""
for letter in range(len(s)):
answer += AlphabetToRuneDict.get(s[letter].upper(), s[letter])
return answer
def RuneToAlphabet(s):
answer = ""
for letter in range(len(s)):
keys = [k for k, v in AlphabetToRuneDict.items() if v == s[letter]]
if keys:
answer += keys[0]
else:
answer += s[letter]
return answer
class MainDisplay:
def __init__(self):
sg.theme("DefaultNoMoreNagging")
self.layout = [ [sg.Image(filename="AssaultLilyLogo.png"), sg.Text("ルーン文字変換機",font=("IPAゴシック", 18))],
[sg.Multiline(size=(70,10),key="txt")],
[sg.Button("アルファベットに変換",border_width=2), sg.Button("ルーン文字に変換",border_width=2)]]
self.window = sg.Window("RuneConverter", self.layout, icon="icon.ico")
def MakeSubDisplay(self, s):
disp2 = SubDisplay(s)
disp2.main()
del disp2
def main(self):
while True:
event, values = self.window.read()
if event == sg.WIN_CLOSED:
break
elif event == "アルファベットに変換":
answer = RuneToAlphabet(values["txt"])
self.MakeSubDisplay(answer)
else:
answer = AlphabetToRune(values["txt"])
self.MakeSubDisplay(answer)
self.window.close()
class SubDisplay:
def __init__(self, s):
sg.theme("DefaultNoMoreNagging")
self.layout = [ [sg.Multiline(size=(50,8),default_text=s)],
[sg.Button("閉じる",border_width=2)] ]
self.window = sg.Window("Converted", self.layout, icon="icon.ico", keep_on_top=True)
def main(self):
while True:
event, values = self.window.read()
if event in ("閉じる", sg.WIN_CLOSED):
break
self.window.close()
if __name__ == "__main__":
disp1 = MainDisplay()
disp1.main()