1010root = tk .Tk ()
1111supported_lang = ["en-Us" , "zh-Hans" ]
1212
13+ # Error
14+ def errno_1 ():
15+ showerror (title = "Error" , message = "[Errno 1] Cannot read settings file data." )
16+ print ("ERROR: [Errno 1] Cannot read settings file data." )
17+
18+ def errno_2 ():
19+ showerror (title = "Error" , message = "[Errno 2] Cannot read language file data." )
20+ print ("ERROR: [Errno 2] Cannot read language file data." )
21+
22+ def errno_3 ():
23+ showerror (title = "Error" , message = "[Errno 3] Number out of range. (0 < min or max < 100000 and min < max)" )
24+ print ("ERROR: [Errno 3] Number out of range. (0 < min or max < 100000 and min < max)" )
25+
1326# Yaml + Language
14- curPath = os .path .dirname (os .path .realpath (__file__ ))
15- yamlSettingsPath = os .path .join (curPath , "settings.yml" )
27+ yamlSettingsPath = os .path .join ("" , "settings.yml" )
1628try :
1729 SettingsFile = open (yamlSettingsPath , 'r' , encoding = 'utf-8' )
1830 dicSettings = yaml .load (SettingsFile .read (), Loader = yaml .FullLoader )
1931 default_Lang = dicSettings ['Language' ]
2032 minnum = dicSettings ['Min' ]
2133 maxnum = dicSettings ['Max' ]
34+ if minnum == None or maxnum == None :
35+ raise TypeError
2236 version = dicSettings ['Version' ]
2337 SettingsFile .close ()
2438except :
25- showerror (title = "Error" , message = "[Errno 1] Cannot read settings file data." )
26- print ("ERROR: [Errno 1] Cannot read settings file data." )
39+ errno_1 ()
2740 root .quit ()
2841try :
29- yamlPath = os .path .join (curPath , "lang/" + default_Lang + ".yml" )
42+ yamlPath = os .path .join ("" , "lang/" + default_Lang + ".yml" )
3043 file = open (yamlPath , 'r' , encoding = 'utf-8' )
3144 dic = yaml .load (file .read (), Loader = yaml .FullLoader )
3245 Lang_Title = dic ['Title' ]
4558 Lang_Switch_Error_Message = dic ['Switch_Lang_Error' ]
4659 file .close ()
4760except :
48- showerror (title = "Error" , message = "[Errno 2] Cannot read language file data." )
49- print ("ERROR: [Errno 2] Cannot read language file data." )
61+ errno_2 ()
5062 root .quit ()
5163
5264# Update Settings
@@ -55,17 +67,42 @@ def update():
5567 data = {"Language" : default_Lang , "Min" : minnum , "Max" : maxnum , "Version" : version }
5668 yaml .dump (data = data , stream = SettingsFile , allow_unicode = True , sort_keys = False )
5769
58- # Min and MAX
70+ # Min Max Frontsize
5971def Ask_MIN ():
6072 global minnum
61- minnum = askinteger (title = Lang_Menu_MIN , prompt = Lang_Menu_MIN )
73+ tmp = askinteger (title = Lang_Menu_MIN , prompt = Lang_Menu_MIN )
74+ if tmp <= 0 or tmp >= maxnum :
75+ errno_3 ()
76+ return
77+ if tmp != None :
78+ minnum = tmp
79+ else :
80+ return
6281 update ()
6382
6483def Ask_MAX ():
6584 global maxnum
66- maxnum = askinteger (title = Lang_Menu_MAX , prompt = Lang_Menu_MAX )
85+ tmp = askinteger (title = Lang_Menu_MAX , prompt = Lang_Menu_MAX )
86+ if tmp >= 100000 or tmp <= minnum :
87+ errno_3 ()
88+ return
89+ if tmp != None :
90+ maxnum = tmp
91+ else :
92+ return
6793 update ()
6894
95+ def FrontSize (tmp ):
96+ length = len (str (tmp ))
97+ if length <= 3 :
98+ return 200
99+ elif length == 4 :
100+ return 150
101+ elif length == 5 :
102+ return 100
103+ else :
104+ return 50
105+
69106# Menubar
70107def Show_Help ():
71108 if default_Lang == "zh-Hans" :
@@ -103,19 +140,16 @@ def Ask_Lang():
103140root .geometry ("400x400" )
104141root .resizable (width = False , height = False )
105142
106- # Random
107- def optimize (Min , Max ):
108- return random .randint (Min , Max )
109-
110143# Mainloop
111144def label_click_handler (events ):
112- selected = optimize (minnum , maxnum )
145+ selected = random .randint (minnum , maxnum )
146+ label_obj1 .config (font = 'Helvetica -%d bold' % FrontSize (selected ))
113147 label_obj1 ['text' ] = selected
114148
115149# Show
116- selected = optimize (minnum , maxnum )
150+ selected = random . randint (minnum , maxnum )
117151label_obj1 = tk .Label (root , text = selected , width = 380 , height = 380 )
118- label_obj1 .config (font = 'Helvetica -%d bold' % 200 )
152+ label_obj1 .config (font = 'Helvetica -%d bold' % FrontSize ( selected ) )
119153label_obj1 .bind ("<Button-1>" , label_click_handler )
120154label_obj1 .pack (side = tk .LEFT )
121155root .mainloop ()
0 commit comments