pixel-hunter/gui.py
2026-07-29 21:12:25 +03:00

65 lines
1.8 KiB
Python

import tkinter as tk
from datetime import datetime
class LogWindow:
def __init__(self):
self.root = tk.Tk()
self.root.title('Screen Clicker')
self.root.geometry('420x220+0+0')
self.root.attributes('-topmost', True)
self.root.protocol('WM_DELETE_WINDOW', self.on_close)
self.running = True
self.screenshot_requested = False
self.capture_requested = False
self.text = tk.Text(
self.root, bg='#1a1a2e', fg='#e0e0e0',
font=('Consolas', 10), state='disabled', relief='flat'
)
self.text.pack(fill='both', expand=True)
controls = tk.Frame(self.root)
controls.pack(fill='x')
tk.Button(
controls,
text='From screenshot',
command=self.request_screenshot,
).pack(side='left', padx=4, pady=4)
tk.Button(
controls,
text='Capture screen',
command=self.request_capture,
).pack(side='left', padx=4, pady=4)
tk.Button(
controls,
text='Stop',
command=self.on_close,
).pack(side='right', padx=4, pady=4)
def log(self, msg):
ts = datetime.now().strftime('%H:%M:%S')
self.text.configure(state='normal')
self.text.insert('end', f'[{ts}] {msg}\n')
self.text.see('end')
self.text.configure(state='disabled')
try:
self.root.update()
except:
pass
def update(self):
if self.running:
self.root.update()
def request_screenshot(self):
self.screenshot_requested = True
def request_capture(self):
self.capture_requested = True
def on_close(self):
self.running = False
self.root.destroy()