Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # tk_rgb_square.py
- import tkinter as tk
- import math
- root = tk.Tk()
- root.title("RGB Color Square")
- root.geometry("+0+0")
- frame = tk.Frame(root)
- frame.grid(row=0, column=0, sticky="nsew")
- step = 4
- colors_per_channel = 256 / step
- total_colors = colors_per_channel ** 3
- side_length = total_colors ** 0.5
- canvas_width = canvas_height = side_length
- canvas = tk.Canvas(frame, width=side_length, height=side_length, bg="white",
- scrollregion=(0, 0, side_length, side_length))
- canvas.grid(row=0, column=0, sticky="nsew")
- x_scroll = tk.Scrollbar(frame, orient=tk.HORIZONTAL, command=canvas.xview)
- x_scroll.grid(row=1, column=0, sticky="ew")
- y_scroll = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)
- y_scroll.grid(row=0, column=1, sticky="ns")
- canvas.configure(xscrollcommand=x_scroll.set, yscrollcommand=y_scroll.set)
- def populate_colors():
- i = 0
- for r in range(0, 256, step):
- for g in range(0, 256, step):
- y = i // side_length
- for b in range(0, 256, step):
- x = i % side_length
- color = f"#{r:02x}{g:02x}{b:02x}"
- canvas.create_rectangle(x, y, x+1, y+1, fill=color, outline="")
- i += 1
- canvas.config(scrollregion=canvas.bbox("all"))
- populate_colors()
- canvas.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement