| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import time
- import tkinter as tk
- from PIL import Image, ImageTk
- class Splash(tk.Toplevel):
- def __init__(self, master=None, **kw):
- tk.Toplevel.__init__(self, master=master, **kw)
- self._root = master
- _image = Image.open('img/splash.png')
- self._image = ImageTk.PhotoImage(_image)
- self._root.withdraw()
- tk.Label(self, image=self._image, relief='flat').pack()
- self.center()
- self.overrideredirect(1)
- self.update()
- time.sleep(3)
- self.destroy()
- self._root.deiconify()
- def center(self):
- """
- centers a tkinter window
- :param self: the root or Toplevel window to center
- """
- self.update_idletasks()
- width = self.winfo_width()
- frm_width = self.winfo_rootx() - self.winfo_x()
- win_width = width + 2 * frm_width
- height = self.winfo_height()
- titlebar_height = self.winfo_rooty() - self.winfo_y()
- win_height = height + titlebar_height + frm_width
- x = self.winfo_screenwidth() // 2 - win_width // 2
- y = self.winfo_screenheight() // 2 - win_height // 2
- self.geometry('{}x{}+{}+{}'.format(width, height, x, y))
- self.deiconify()
|