heretostay
Dungeon Explorer
2
MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1
400 XP
Hello Guys, Here I've Uploaded a Sourcecode of Typo Speed - Typing Speed Calculator Created in Python 3.
If you want full tutorial video then you can visit bb coder guy (https://www.youtube.com/channel/UC-bbvWb1huCXugbY45l_zoQ) Youtube Channel
To run this you have to install python module listed below:
ttkthemes - pip install ttkthemes
Source Code
Happy Learning :)
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
Download
If you want full tutorial video then you can visit bb coder guy (https://www.youtube.com/channel/UC-bbvWb1huCXugbY45l_zoQ) Youtube Channel
To run this you have to install python module listed below:
ttkthemes - pip install ttkthemes
Source Code
- import
tkinter as
tk
- import
time
- from
tkinter import
ttk
- from
ttkthemes import
themed_tk as
tt
- import
threading
- import
random
- # Initial Variables
- timeLimit =
60
- remainingTime =
timeLimit
- elpasedTime =
0
- elpasedTimeInMinute =
0
- totalWords =
0
- wrong_words =
0
- net_wpm=
0
- accuracy=
0
- # ************************************************************************ Start Button *****************************************************************
- def
start_timer(
)
:
- global
elpasedTime
- entry.focus
(
)
- entry.config
(
state=
'normal'
)
- button_start.config
(
state=
'disabled'
)
- button_reset.config
(
state=
'disabled'
)
- for
k in
range
(
1
,
timeLimit + 1
)
:
- elpasedTime =
k
- lbl_elpasedTimer[
'text'
]
=
elpasedTime
- updatedRemainingTime =
remainingTime - elpasedTime
- lbl_remainingTimer[
'text'
]
=
updatedRemainingTime
- time
.sleep
(
1
)
- root.update
(
)
- entry.config
(
state=
'disabled'
)
- button_reset.config
(
state=
'normal'
)
- def
result(
)
:
- global
wrong_words
- global
elpasedTime
- global
elpasedTimeInMinute
- global
accuracy
- para_words =
lbl_paragraph[
'text'
]
.split
(
)
- while
elpasedTime !=
timeLimit:
- enteredParagraph =
entry.get
(
1.0
,
'end-1c'
)
.split
(
)
- totalWords =
len
(
enteredParagraph)
- for
pair in
list
(
zip
(
para_words,
enteredParagraph)
)
:
- if
pair[
0
]
!=
pair[
1
]
:
- wrong_words+=
1
- elpasedTimeInMinute =
elpasedTime/60
- # gross wpm
- gross_wpm =
(
totalWords)
/elpasedTimeInMinute
- # net wpm
- net_wpm =
(
totalWords-wrong_words)
/elpasedTimeInMinute
- lbl_wpm[
'text'
]
=
round
(
net_wpm)
- # accuracy
- accuracy =
(
net_wpm/gross_wpm)
* 100
- lbl_accuracy[
'text'
]
=
round
(
accuracy,
2
)
- # total words
- lbl_total_words[
'text'
]
=
totalWords
- # wrong words
- lbl_wrong_words[
'text'
]
=
wrong_words
- def
start(
)
:
- thr1 =
threading
.Thread
(
target=
start_timer)
- thr1.start
(
)
- thr2 =
threading
.Thread
(
target=
result)
- thr2.start
(
)
- # ************************************************************ Reset Button *******************************************************
- def
reset(
)
:
- global
remainingTime
- global
elpasedTime
- button_reset.config
(
state=
'disabled'
)
- button_start.config
(
state=
'normal'
)
- entry.config
(
state=
'normal'
)
- entry.delete
(
1.0
,
tk.END
)
- entry.config
(
state=
'disabled'
)
- remainingTime =
timeLimit
- elpasedTime =
0
- lbl_elpasedTimer[
'text'
]
=
0
- lbl_remainingTimer[
'text'
]
=
60
- lbl_wpm[
'text'
]
=
0
- lbl_accuracy[
'text'
]
=
0
- lbl_total_words[
'text'
]
=
0
- lbl_wrong_words[
'text'
]
=
0
- # *************************************************************** Random Paragraph **************************************************
- with
open
(
'paragraph.txt'
)
as
f:
- paragraphs =
f.readlines
(
)
- selected_paragraph =
random
.choice
(
paragraphs)
- # **************************************************************************************************************************************************
- # **************************************************************************************************************************************************
- # **************************************************************************************************************************************************
- # ********************************************************************* Designing ******************************************************************
- # **************************************************************************************************************************************************
- # **************************************************************************************************************************************************
- # **************************************************************************************************************************************************
- ###################################################################### Creating Window ############################################################
- root =
tt.ThemedTk
(
)
- root.get_themes
(
)
- root.set_theme
(
"radiance"
)
- root.title
(
"Typo Speed (Developed by : BB Coder Guy)"
)
- root.geometry
(
'1140x950+400+20'
)
- root.configure
(
bg=
'white'
)
- root.resizable
(
False
,
False
)
- # *******************************************************************************************************************************************
- ############################################################### Main Frame #######################################################
- center_frame_main =
tk.Frame
(
root,
bg=
'white'
,
bd=
4
)
- ###### Title Frame ######
- frame_title =
tk.Frame
(
center_frame_main,
bg=
'orange'
,
relief=
'flat'
)
- lbl_title =
tk.Label
(
frame_title,
text=
'Typo Speed'
,
font=
'algerian 35 bold'
,
bg=
'light yellow'
,
fg=
'black'
,
relief=
'flat'
,
bd=
10
,
width=
30
)
- lbl_title.grid
(
row=
0
,
pady=
10
)
- frame_title.grid
(
row=
0
,
columnspan=
12
)
- # ****** Title Frame End *****************
- ###### Test Frame ######
- frame_test =
tk.LabelFrame
(
center_frame_main,
text=
'Test'
,
bd=
'4'
,
bg=
'white'
)
- lbl_paragraph =
tk.Label
(
frame_test,
text=
selected_paragraph,
wraplength=
1000
,
justify=
'left'
)
- entry =
tk.Text
(
frame_test,
height=
8
,
width=
110
,
bd=
2
)
- entry.config
(
state=
'disabled'
)
- lbl_paragraph.grid
(
row=
0
,
sticky=
'ew'
,
pady=
5
)
- entry.grid
(
row=
1
)
- frame_test.grid
(
row=
1
,
columnspan=
12
,
sticky=
'n'
,
padx=
5
,
pady=
5
)
- # ********* Test Frame End **************
- ###### Output Frame ######
- font =
'Tahoma 10 bold'
- title_color =
'red'
- frame_output =
tk.LabelFrame
(
center_frame_main,
bg=
'white'
,
relief=
'flat'
)
- ###### Labels
- frame_labels =
tk.Frame
(
frame_output,
bg=
'white'
)
- lbl_elpasedTime =
tk.Label
(
frame_labels,
text=
'Elpased Time'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_elpasedTimer =
tk.Label
(
frame_labels,
text=
'0'
,
font=
font,
bg=
'white'
)
- lbl_remainingTime =
tk.Label
(
frame_labels,
text=
'Remaining Time'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_remainingTimer =
tk.Label
(
frame_labels,
text=
'60'
,
font=
font,
bg=
'white'
)
- lbl_wpm_title =
tk.Label
(
frame_labels,
text=
'WPM'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_wpm =
tk.Label
(
frame_labels,
text=
'0'
,
font=
font,
bg=
'white'
)
- lbl_accuracy_title =
tk.Label
(
frame_labels,
text=
'Accuracy(%)'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_accuracy =
tk.Label
(
frame_labels,
text=
'0'
,
font=
font,
bg=
'white'
)
- lbl_total_words_title =
tk.Label
(
frame_labels,
text=
'Total Words'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_total_words =
tk.Label
(
frame_labels,
text=
'0'
,
font=
font,
bg=
'white'
)
- lbl_wrong_words_title =
tk.Label
(
frame_labels,
text=
'Wrong Words'
,
font=
font,
fg=
title_color,
bg=
'white'
)
- lbl_wrong_words =
tk.Label
(
frame_labels,
text=
'0'
,
font=
font,
bg=
'white'
)
- lbl_elpasedTime.grid
(
row=
0
,
column=
0
,
padx=
10
,
pady=
10
)
- lbl_elpasedTimer.grid
(
row=
0
,
column=
1
,
padx=
10
,
pady=
5
)
- lbl_remainingTime.grid
(
row=
0
,
column=
2
,
padx=
10
,
pady=
5
)
- lbl_remainingTimer.grid
(
row=
0
,
column=
3
,
padx=
10
,
pady=
5
)
- lbl_wpm_title.grid
(
row=
0
,
column=
4
,
padx=
10
,
pady=
10
)
- lbl_wpm.grid
(
row=
0
,
column=
5
,
padx=
10
)
- lbl_accuracy_title.grid
(
row=
0
,
column=
6
,
padx=
10
,
pady=
10
)
- lbl_accuracy.grid
(
row=
0
,
column=
7
,
padx=
10
)
- lbl_total_words_title.grid
(
row=
0
,
column=
8
,
padx=
10
)
- lbl_total_words.grid
(
row=
0
,
column=
9
,
padx=
10
)
- lbl_wrong_words_title.grid
(
row=
0
,
column=
10
,
padx=
10
)
- lbl_wrong_words.grid
(
row=
0
,
column=
11
,
padx=
10
)
- frame_labels.grid
(
row=
0
,
columnspan=
12
,
sticky=
'n'
)
- ###### Buttons
- frame_controls =
tk.Frame
(
frame_output,
bg=
'white'
)
- button_start =
ttk.Button
(
frame_controls,
text=
'Start'
,
command=
start)
- button_reset =
ttk.Button
(
frame_controls,
text=
'Reset'
,
command=
reset)
- button_reset.config
(
state=
'disabled'
)
- button_start.grid
(
row=
1
,
column=
0
,
padx=
10
,
sticky=
'n'
)
- button_reset.grid
(
row=
1
,
column=
1
,
padx=
10
,
sticky=
'n'
)
- frame_controls.grid
(
row=
1
,
columnspan=
12
,
sticky=
'n'
)
- frame_output.grid
(
row=
2
,
columnspan=
12
,
sticky=
'n'
)
- # *********************** Output Frame End ****************
- ###### Keyboard Frame ######
- frame_keyboard =
tk.LabelFrame
(
center_frame_main,
bd=
4
,
bg=
'white'
,
fg=
'black'
,
relief=
'flat'
)
- # frame_1_0 = tk.Frame(frame_keyboard,bg='white')
- # for i in range(0,10):
- # exec(f"lbl_{i} = tk.Label(frame_1_0,text='{i}',bg='black',fg='white',width=5,height=2,relief='groove',bd=10)")
- # exec(f"lbl_{i}.grid(row=0,column=i+1,padx=10,pady=5)")
- ###### 1-0
- frame_1_0 =
tk.Frame
(
frame_keyboard,
bg=
'white'
)
- lbl_1 =
tk.Label
(
frame_1_0,
text=
'1'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_2 =
tk.Label
(
frame_1_0,
text=
'2'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_3 =
tk.Label
(
frame_1_0,
text=
'3'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_4 =
tk.Label
(
frame_1_0,
text=
'4'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_5 =
tk.Label
(
frame_1_0,
text=
'5'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_6 =
tk.Label
(
frame_1_0,
text=
'6'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_7 =
tk.Label
(
frame_1_0,
text=
'7'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_8 =
tk.Label
(
frame_1_0,
text=
'8'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_9 =
tk.Label
(
frame_1_0,
text=
'9'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_0 =
tk.Label
(
frame_1_0,
text=
'0'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_1.grid
(
row=
0
,
column=
1
,
padx=
10
,
pady=
5
)
- lbl_2.grid
(
row=
0
,
column=
2
,
padx=
10
,
pady=
5
)
- lbl_3.grid
(
row=
0
,
column=
3
,
padx=
10
,
pady=
5
)
- lbl_4.grid
(
row=
0
,
column=
4
,
padx=
10
,
pady=
5
)
- lbl_5.grid
(
row=
0
,
column=
5
,
padx=
10
,
pady=
5
)
- lbl_6.grid
(
row=
0
,
column=
6
,
padx=
10
,
pady=
5
)
- lbl_7.grid
(
row=
0
,
column=
7
,
padx=
10
,
pady=
5
)
- lbl_8.grid
(
row=
0
,
column=
8
,
padx=
10
,
pady=
5
)
- lbl_9.grid
(
row=
0
,
column=
9
,
padx=
10
,
pady=
5
)
- lbl_0.grid
(
row=
0
,
column=
10
,
padx=
10
,
pady=
5
)
- frame_1_0.grid
(
row=
0
)
- ###### Q-P
- frame_q_p =
tk.Frame
(
frame_keyboard,
bg=
'white'
)
- lbl_Q =
tk.Label
(
frame_q_p,
text=
'Q'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_W =
tk.Label
(
frame_q_p,
text=
'W'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_E =
tk.Label
(
frame_q_p,
text=
'E'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_R =
tk.Label
(
frame_q_p,
text=
'R'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_T =
tk.Label
(
frame_q_p,
text=
'T'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_Y =
tk.Label
(
frame_q_p,
text=
'Y'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_U =
tk.Label
(
frame_q_p,
text=
'U'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_I =
tk.Label
(
frame_q_p,
text=
'I'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_O =
tk.Label
(
frame_q_p,
text=
'O'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_P =
tk.Label
(
frame_q_p,
text=
'P'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_Q.grid
(
row=
0
,
column=
1
,
padx=
10
,
pady=
5
)
- lbl_W.grid
(
row=
0
,
column=
2
,
padx=
10
,
pady=
5
)
- lbl_E.grid
(
row=
0
,
column=
3
,
padx=
10
,
pady=
5
)
- lbl_R.grid
(
row=
0
,
column=
4
,
padx=
10
,
pady=
5
)
- lbl_T.grid
(
row=
0
,
column=
5
,
padx=
10
,
pady=
5
)
- lbl_Y.grid
(
row=
0
,
column=
6
,
padx=
10
,
pady=
5
)
- lbl_U.grid
(
row=
0
,
column=
7
,
padx=
10
,
pady=
5
)
- lbl_I.grid
(
row=
0
,
column=
8
,
padx=
10
,
pady=
5
)
- lbl_O.grid
(
row=
0
,
column=
9
,
padx=
10
,
pady=
5
)
- lbl_P.grid
(
row=
0
,
column=
10
,
padx=
10
,
pady=
5
)
- frame_q_p.grid
(
row=
1
)
- ###### A-L
- frame_a_l =
tk.Frame
(
frame_keyboard,
bg=
'white'
)
- lbl_A =
tk.Label
(
frame_a_l,
text=
'A'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_S =
tk.Label
(
frame_a_l,
text=
'S'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_D =
tk.Label
(
frame_a_l,
text=
'D'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_F =
tk.Label
(
frame_a_l,
text=
'F'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_G =
tk.Label
(
frame_a_l,
text=
'G'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_H =
tk.Label
(
frame_a_l,
text=
'H'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_J =
tk.Label
(
frame_a_l,
text=
'J'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_K =
tk.Label
(
frame_a_l,
text=
'K'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_L =
tk.Label
(
frame_a_l,
text=
'L'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_A.grid
(
row=
0
,
column=
1
,
padx=
10
,
pady=
5
)
- lbl_S.grid
(
row=
0
,
column=
2
,
padx=
10
,
pady=
5
)
- lbl_D.grid
(
row=
0
,
column=
3
,
padx=
10
,
pady=
5
)
- lbl_F.grid
(
row=
0
,
column=
4
,
padx=
10
,
pady=
5
)
- lbl_G.grid
(
row=
0
,
column=
5
,
padx=
10
,
pady=
5
)
- lbl_H.grid
(
row=
0
,
column=
6
,
padx=
10
,
pady=
5
)
- lbl_J.grid
(
row=
0
,
column=
7
,
padx=
10
,
pady=
5
)
- lbl_K.grid
(
row=
0
,
column=
8
,
padx=
10
,
pady=
5
)
- lbl_L.grid
(
row=
0
,
column=
9
,
padx=
10
,
pady=
5
)
- frame_a_l.grid
(
row=
2
)
- ###### Z-M
- frame_z_m =
tk.Frame
(
frame_keyboard,
bg=
'white'
)
- lbl_Z =
tk.Label
(
frame_z_m,
text=
'Z'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_X =
tk.Label
(
frame_z_m,
text=
'X'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_C =
tk.Label
(
frame_z_m,
text=
'C'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_V =
tk.Label
(
frame_z_m,
text=
'V'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_B =
tk.Label
(
frame_z_m,
text=
'B'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_N =
tk.Label
(
frame_z_m,
text=
'N'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_M =
tk.Label
(
frame_z_m,
text=
'M'
,
bg=
'black'
,
fg=
'white'
,
width=
5
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_Z.grid
(
row=
0
,
column=
1
,
padx=
10
,
pady=
5
)
- lbl_X.grid
(
row=
0
,
column=
2
,
padx=
10
,
pady=
5
)
- lbl_C.grid
(
row=
0
,
column=
3
,
padx=
10
,
pady=
5
)
- lbl_V.grid
(
row=
0
,
column=
4
,
padx=
10
,
pady=
5
)
- lbl_B.grid
(
row=
0
,
column=
5
,
padx=
10
,
pady=
5
)
- lbl_N.grid
(
row=
0
,
column=
6
,
padx=
10
,
pady=
5
)
- lbl_M.grid
(
row=
0
,
column=
7
,
padx=
10
,
pady=
5
)
- frame_z_m.grid
(
row=
3
)
- ###### space
- frame_space =
tk.Frame
(
frame_keyboard,
bg=
'white'
)
- lbl_space =
tk.Label
(
frame_space,
bg=
'black'
,
width=
40
,
height=
2
,
relief=
'groove'
,
bd=
10
)
- lbl_space.grid
(
row=
0
,
columnspan=
10
,
padx=
10
,
pady=
4
)
- frame_space.grid
(
row=
4
)
- frame_keyboard.grid
(
row=
3
,
columnspan=
12
,
sticky=
'n'
)
- # *********** Keyboard Frame End *****************
- center_frame_main.grid
(
)
- # ************************************************************** Main Frame End ***************************************************************
- ###### Key Bindings
- def
changeBGEnter(
widget)
:
- bg =
'black'
- widget.configure
(
background=
"blue"
)
- widget.after
(
100
,
lambda
color=
bg: widget.configure
(
background=
color)
)
- labels_numbers =
[
lbl_1,
lbl_2,
lbl_3,
lbl_4,
lbl_5,
lbl_6,
lbl_7,
lbl_8,
lbl_9,
lbl_0]
- labels_alpha =
[
lbl_A,
lbl_B,
lbl_C,
lbl_D,
lbl_E,
lbl_F,
lbl_G,
lbl_H,
lbl_I,
lbl_J,
lbl_K,
lbl_L,
lbl_M,
lbl_N,
lbl_O,
lbl_P,
lbl_Q,
lbl_R,
lbl_S,
lbl_T,
lbl_U,
lbl_V,
lbl_W,
lbl_X,
lbl_Y,
lbl_Z]
- labels_space =
[
lbl_space]
- bindings_number_list =
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
0
]
- bindings_capital_alphabet_list =
[
'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'
]
- bindings_small_alphabet_list =
[
'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'
]
- for
number in
range
(
len
(
bindings_number_list)
)
:
- root.bind
(
f"{bindings_number_list[number]}"
,
lambda
event,
label=
labels_numbers[
number]
: changeBGEnter(
label)
)
- for
capital_alphabet in
range
(
len
(
bindings_capital_alphabet_list)
)
:
- root.bind
(
f"<{bindings_capital_alphabet_list[capital_alphabet]}>"
,
lambda
event,
label=
labels_alpha[
capital_alphabet]
: changeBGEnter(
label)
)
- for
small_alphabet in
range
(
len
(
bindings_small_alphabet_list)
)
:
- root.bind
(
f"<{bindings_small_alphabet_list[small_alphabet]}>"
,
lambda
event,
label=
labels_alpha[
small_alphabet]
: changeBGEnter(
label)
)
- root.bind
(
"<space>"
,
lambda
event,
label=
labels_space[
0
]
: changeBGEnter(
label)
)
- root.mainloop
(
)
Happy Learning :)
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
Download
You must upgrade your account or reply in the thread to view hidden text.