65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
import tkinter as tk
|
|
from PIL import Image, ImageTk
|
|
|
|
# Membuat GUI dengan Tkinter
|
|
root = tk.Tk()
|
|
root.title("8 Button with Images")
|
|
root.configure(bg="white")
|
|
root.geometry("480x320")
|
|
|
|
frame = tk.Frame(root, bg="white")
|
|
frame.pack(pady=20)
|
|
|
|
# Tambahkan gambar/logo di atas
|
|
try:
|
|
logo_image = Image.open("logo.png")
|
|
logo_image = logo_image.resize((50, 60))
|
|
logo_photo = ImageTk.PhotoImage(logo_image)
|
|
label_logo = tk.Label(frame, image=logo_photo, borderwidth=0, bg="white")
|
|
label_logo.image = logo_photo
|
|
label_logo.grid(row=0, column=0, columnspan=1, padx=5, pady=5)
|
|
except Exception as e:
|
|
print(f"Error loading logo image: {e}")
|
|
|
|
# Tambahkan label untuk menampilkan informasi suhu di sebelah kanan atas
|
|
label_temp = tk.Label(frame, text="Suhu Ruangan: 25°C", font=("Montserrat", 10), bg="white", fg="#3F51B5")
|
|
label_temp.grid(row=0, column=2, columnspan=2, padx=5, pady=15)
|
|
|
|
# Memuat gambar untuk tombol-tombol
|
|
button_images = []
|
|
for i in range(8):
|
|
try:
|
|
img = Image.open(f"button_image{i+1}.png")
|
|
img = img.resize((50, 50))
|
|
img = ImageTk.PhotoImage(img)
|
|
button_images.append(img)
|
|
except Exception as e:
|
|
print(f"Error loading image {i+1}: {e}")
|
|
button_images.append(None)
|
|
|
|
# Membuat tombol untuk setiap relay (dengan gambar)
|
|
buttons = []
|
|
for i in range(2):
|
|
for j in range(4):
|
|
pin = i * 4 + j
|
|
img = button_images[pin]
|
|
if img:
|
|
btn = tk.Button(frame, image=img, bg="#90CAF9", width=60, height=60, borderwidth=0)
|
|
else:
|
|
btn = tk.Button(frame, text=f"Button {pin+1}", bg="red", width=8, height=4, borderwidth=0)
|
|
btn.grid(row=i+1, column=j, padx=5, pady=5)
|
|
buttons.append(btn)
|
|
|
|
# Tombol untuk mengaktifkan dan menonaktifkan mode penjadwalan
|
|
schedule_enabled = False
|
|
|
|
def toggle_schedule():
|
|
global schedule_enabled
|
|
schedule_enabled = not schedule_enabled
|
|
schedule_button.config(text="Schedule ON" if schedule_enabled else "Schedule OFF", bg="#90CAF9" if schedule_enabled else "red")
|
|
|
|
schedule_button = tk.Button(frame, text="Schedule OFF", bg="red", width=15, height=2, borderwidth=0, command=toggle_schedule)
|
|
schedule_button.grid(row=3, column=0, columnspan=4, padx=5, pady=5)
|
|
|
|
root.mainloop()
|