from time import strftime
import tkinter as tk
from operator import add, sub
class FloatingWindow(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.overrideredirect(True)
self.pos = (0, 0)
#
self.grip = tk.Label(self, bitmap='gray25')
self.grip.bind('<ButtonPress-1>', self.on_move_start)
self.grip.bind('<B1-Motion>', self.on_motion)
self.grip.pack(side=tk.LEFT)
#
self.clock = tk.Label(self, font=('times', 20, 'bold'), bg='lavender')
self.clock.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
#
self.close_button = tk.Button(self, text='X', command=self.quit)
self.close_button.pack(side=tk.LEFT)
self.after(0, self.on_elapsed)
def on_elapsed(self):
self.clock.config(text=strftime('%H:%M:%S'))
self.after(200, self.on_elapsed)
def on_move_start(self, event):
self.pos = (event.x, event.y)
def on_motion(self, event):
delta = tuple(map(sub, (event.x, event.y), self.pos))
x, y = tuple(map(add, (self.winfo_x(), self.winfo_y()), delta))
self.geometry("+%d+%d" % (x, y))
def move_center(win):
# windowをディスプレイの中心に移動。
win.update_idletasks()
x = (win.winfo_screenwidth() - win.winfo_reqwidth()) / 2
y = (win.winfo_screenheight() - win.winfo_reqheight()) / 2
win.geometry("+%d+%d" % (x, y))
def main():
root = tk.Tk()
root.withdraw()
app = FloatingWindow(root)
move_center(app)
app.mainloop()
if __name__ == '__main__':
main()
Created
September 12, 2018 13:33
-
-
Save umyuu/28f890dd8af4a437c1d5faed178e9aae to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment