Hiya! I'm trying to make an alarm clock as homework however I keep getting this strange error:
I tried requesting assistance from my teacher but she is just as confused as I am so she left me to it.
Here is my code:
Error:Traceback (most recent call last):
File "C:\Users\RPC-K\OneDrive\Documents\PY.LESSON FLIES\HOMEWORK15\IDK.py", line 43, in <module>
label1 = root.Label(root, image=bg)
File "C:\Program Files\Python311\Lib\tkinter\__init__.py", line 2410, in __getattr__
return getattr(self.tk, attr)
AttributeError: '_tkinter.tkapp' object has no attribute 'Label'My code used to work as intended but now a blank white tkinter window is all tat appears.I tried requesting assistance from my teacher but she is just as confused as I am so she left me to it.
Here is my code:
# Import Required Library
from tkinter import *
import datetime
import time
import winsound
from threading import *
# Create Object
root = Tk()
# Set geometry
root.geometry("400x200")
# Use Threading
def Threading():
t1=Thread(target=alarm)
t1.start()
def alarm():
# Infinite Loop
while True:
# Set Alarm
set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}"
# Wait for one seconds
time.sleep(1)
# Get current time
current_time = datetime.datetime.now().strftime("%H:%M:%S")
print(current_time,set_alarm_time)
# Check whether set alarm is equal to current time or not
if current_time == set_alarm_time:
print("Time to Wake up")
# Playing sound
winsound.PlaySound("sound.wav",winsound.SND_ASYNC)
bg = PhotoImage(file = r"C:\Users\RPC-K\Downloads\giphy.gif")
# Set the label's background color to match your application's
# Show image using label
label1 = root.Label(root, image=bg)
label1.place(x = 530, y = 300)
# Add text
label2 = root.Label(root, text="Welcome",
bg = "#88cffa")
label2.pack(pady = 50)
# Create Frame
frame1 = root.Frame(root, bg="#88cffa")
frame1.pack(pady = 20)
# Add Labels, Frame, Button, Optionmenus
Label(root,text="Khanam's Alarm Clock",font=("Wistful 90 bold"),fg="Light Blue").pack(pady=10)
root.wm_attributes("-transparentcolor", "white")
Label(root,text="Set Time",font=("Wistful 50 bold"),fg="Dark blue").pack()
root.wm_attributes("-transparentcolor", "white")
label_instance = Label(root) # Create an instance of the Label class
label_instance.configure(bg=root.cget("bg")) # Call configure on the instance
frame = Frame(root)
frame.pack()
hour = StringVar(root)
hours = ('00', '01', '02', '03', '04', '05', '06', '07',
'08', '09', '10', '11', '12', '13', '14', '15',
'16', '17', '18', '19', '20', '21', '22', '23', '24'
)
hour.set(hours[0])
hrs = OptionMenu(frame, hour, *hours)
hrs.pack(side=LEFT)
minute = StringVar(root)
minutes = ('00', '01', '02', '03', '04', '05', '06', '07',
'08', '09', '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')
minute.set(minutes[0])
mins = OptionMenu(frame, minute, *minutes)
mins.pack(side=LEFT)
second = StringVar(root)
seconds = ('00', '01', '02', '03', '04', '05', '06', '07',
'08', '09', '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')
second.set(seconds[0])
secs = OptionMenu(frame, second, *seconds)
secs.pack(side=LEFT)
Button(root,text="Set Alarm",font=("Comfortaa 15"),command=Threading).pack(pady=20)
# Create a canvas widget
canvas=Canvas(root, width=1000, height=500)
canvas.configure(background='black')
canvas.pack()
# Create an oval or ball in the canvas widget
ball=canvas.create_oval(10,10,50,50, fill="lavender")
# Move the ball
xspeed=yspeed=10
def move_ball():
global xspeed, yspeed
canvas.move(ball, xspeed, yspeed)
(leftpos, toppos, rightpos, bottompos)=canvas.coords(ball)
if leftpos <=0 or rightpos>=700:
xspeed=-xspeed
if toppos <=0 or bottompos >=350:
yspeed=-yspeed
canvas.after(100, move_ball)
canvas.after(1000, move_ball)
bounce = Tk.Label(parent, image=background_image)
bounce.place(x=0, y=0, relwidth=1, relheight=1)
# Execute Tkinter
root.mainloop()All help would be greatly appreciated! Thanks! - moon
JUST A FRIENDLY REMINDER, I AM INFACT A YOUNG CHILD SO PLEASE FORGIVE ME IF I LACK OF ANY KNOWLEDGE THAT MAY SEEM OBVIOUS...I AM STILL DEVELOPING MY SKILLS IN PYTHON - YOURS SINCERELY, Moon
😋
😋
