Sep-06-2021, 02:25 AM
(This post was last modified: Sep-06-2021, 05:40 AM by menator01.
Edit Reason: Added a command line option for minutes the window will stay open.
)
#! /usr/bin/env python3 from skimage.io import imread import tkinter as tk from tkinter import filedialog from os import sys import argparse parser = argparse.ArgumentParser() parser.add_argument('--minutes', type=int, help='--minutes n to add minutes. Leave blank to stay open.') args = parser.parse_args() minutes = None if args.minutes: minutes = args.minutes*60000 else: pass root = tk.Tk() root.geometry('1020x600+250+250') root.title('Raw Image Viewer') root['padx'] = 5 root['pady'] = 5 root['padx'] = 20 root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) def get_image(): file = filedialog.askopenfilename(title='Image File') img = tk.PhotoImage(file=file) img.back = img img_label = tk.Label(emptyframe) img_label['image'] = img img_label.grid(column=0, row=0, sticky='news') col = 0 row = 0 imag = imread(file) listbox.delete(0, tk.END) for data in imag: listbox.insert(tk.END, data) container = tk.Frame(root) container.grid(column=0, row=0, sticky='news') container.grid_columnconfigure(0, weight=1) container.grid_columnconfigure(1, weight=3) container.grid_rowconfigure(1, weight=3) border = tk.Frame(container) border['highlightcolor'] = 'lightgray' border['highlightbackground'] = 'lightgray' border['highlightthickness'] = 1 border.grid(column=0, row=0, sticky='news', padx=2, pady=2) label = tk.Label(border, text='Choose an Image') label.grid(column=0, row=0, sticky='news') btnborder = tk.Frame(container) btnborder['highlightcolor'] = 'lightgray' btnborder['highlightbackground'] = 'lightgray' btnborder['highlightthickness'] = 1 btnborder.grid(column=1, row=0, sticky='news', padx=1, pady=2) btnborder.grid_columnconfigure(0, weight=3) btn = tk.Button(btnborder, text='Get Image', command=get_image) btn.grid(column=0, row=0, sticky='n') emptyframe = tk.Frame(container) emptyframe['highlightthickness'] = 1 emptyframe['highlightcolor'] = 'lightgray' emptyframe['highlightbackground'] = 'lightgray' emptyframe.grid(column=0, row=1, sticky='news', padx=2) emptyframe.grid_rowconfigure(1, weight=3) emptyframe.grid_columnconfigure(0, weight=3) spacer = tk.Frame(container, bg='white', border=1) spacer['highlightbackground'] = 'lightgray' spacer['highlightcolor'] = 'lightgray' spacer['highlightthickness'] = 1 spacer.grid(column=1, row=1, sticky='news') spacer.grid_rowconfigure(0, weight=3) spacer.grid_columnconfigure(0, weight=3) boxframe = tk.Frame(spacer, bg='white', border=2) boxframe['highlightcolor'] = 'white' boxframe['highlightbackground'] = 'white' boxframe['highlightthickness'] = 2 boxframe.grid(column=0, row=0, sticky='news', padx=2, pady=2) boxframe.grid_rowconfigure(0, weight=3) horizontalbar = tk.Scrollbar(spacer, orient='horizontal') horizontalbar.grid(column=0, row=1, sticky='ew') verticalbar = tk.Scrollbar(spacer, orient='vertical') verticalbar.grid(column=1, row=0, sticky='ns') listbox = tk.Listbox(boxframe, relief='flat') listbox['highlightthickness'] = 0 listbox.pack(expand=True, fill='both') listbox['xscrollcommand'] = horizontalbar.set listbox['yscrollcommand'] = verticalbar.set horizontalbar.configure(command=listbox.xview) verticalbar.configure(command=listbox.yview) root.bind('<q>', sys.exit) root.bind('<Escape>', sys.exit) if minutes: root.after(minutes, sys.exit) root.mainloop()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags
Download my project scripts
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags
Download my project scripts