This approach uses no Frame objects and is different in that it creates a very large Canvas with Scrollbars and asks you for an image to display on it.
The screen is then set with self.root.wm_attributes("-fullscreen", 1) and self.root.wm_attributes("-top", 1)
Press the Escape key or Alt-F4 to close.
import tkinter as tk from tkinter import filedialog as fido class BigScreen: def __init__( self ): self.root = tk.Tk() self.root.rowconfigure(0, weight = 1) self.root.columnconfigure(0, weight = 1) w, h = self.root.winfo_screenwidth(), self.root.winfo_screenheight() self.canvas = tk.Canvas(self.root, scrollregion = f"0 0 {w*2} {h*2}") self.canvas.grid(row = 0, column = 0, sticky = tk.NSEW) self.makescroll(self.root, self.canvas ) self.imagename = fido.askopenfilename( title = "Pick Image to View" ) if self.imagename: self.photo = tk.PhotoImage(file = self.imagename).zoom(2, 2) self.window = self.canvas.create_image( ( 0, 0 ), anchor = tk.NW, image = self.photo) self.root.bind("<Escape>", self.closer) self.root.wm_attributes("-fullscreen", 1) self.root.wm_attributes("-top", 1) def makescroll(self, parent, thing): v = tk.Scrollbar(parent, orient = tk.VERTICAL, command = thing.yview) v.grid(row = 0, column = 1, sticky = tk.NS) thing.config(yscrollcommand = v.set) h = tk.Scrollbar(parent, orient = tk.HORIZONTAL, command = thing.xview) h.grid(row = 1, column = 0, sticky = tk.EW) thing.config(xscrollcommand = h.set) def closer(self, ev): self.root.destroy() if __name__ == "__main__": Big = BigScreen() Big.root.mainloop()
My previous answer went well beyond the question asked so this is a cut-down version more accurately answers the question.