-
Notifications
You must be signed in to change notification settings - Fork 1
/
format_menu.py
59 lines (44 loc) · 1.6 KB
/
format_menu.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
# import statements
from tkinter import *
from tkinter.colorchooser import askcolor
from tkinter.font import Font, families
from tkinter.scrolledtext import *
class Format():
def __init__(self, text, root):
self.text = text
self.root = root
def changeBg(self):
(triple, hexstr) = askcolor()
if hexstr:
self.text.config(bg=hexstr)
def changeFg(self):
(triple, hexstr) = askcolor()
if hexstr:
self.text.config(fg=hexstr)
def textchange(self, event):
if self.root.title().endswith("*"):
return
self.root.title(self.root.title() + "*")
def main(root, text, menubar):
objFormat = Format(text, root)
fontoptions = families(root)
font = Font(family="Arial", size=12)
text.configure(font=font)
formatMenu = Menu(menubar)
fsubmenu = Menu(formatMenu, tearoff=0)
ssubmenu = Menu(formatMenu, tearoff=0)
for option in fontoptions:
fsubmenu.add_command(label=option, command=lambda option=option: font.configure(family=option))
for value in range(1, 31):
ssubmenu.add_command(label=str(value), command=lambda value=value: font.configure(size=value))
formatMenu.add_command(label="Change Background", command=objFormat.changeBg)
formatMenu.add_command(label="Change Font Color", command=objFormat.changeFg)
formatMenu.add_cascade(label="Font", underline=0, menu=fsubmenu)
formatMenu.add_cascade(label="Size", underline=0, menu=ssubmenu)
menubar.add_cascade(label="Format", menu=formatMenu)
text.bind('<KeyPress>', objFormat.textchange)
root.grid_columnconfigure(0, weight=1)
root.resizable(True, True)
root.config(menu=menubar)
if __name__ == "__main__":
print("Please run 'main.py'")