誰能幫我弄清楚如何移動視窗并且在使用自定義標題欄時它不會捕捉到角落...
from tkinter import *
root = Tk()
root.geometry('571x819')
root.overrideredirect(1)
root.wm_attributes("-transparentcolor", "grey")
def move_app(e):
root.geometry(f' {e.x_root} {e.y_root}')
frame_photo = PhotoImage(file = 'F:\\gui\\Frame 1.png')
frame_label = Label(root, borderwidth = 0, bg = 'grey', image = frame_photo)
frame_label.pack(fill=BOTH, expand = True)
title_bar = Frame(root, bg='#FFF6C9', relief='raised', bd=0,highlightthickness=0)
title_bar_title = Label(title_bar, bg='#FFF6C9',bd=0,fg='white',font=("helvetica",
10),highlightthickness=0)
frame_label.bind("<B1-Motion>", move_app)
root.mainloop()
uj5u.com熱心網友回復:
您可以通過系結事件來保存開始移動時視窗左上角的偏移量<Button-1>,然后根據這個偏移量計算視窗左上角的位置move_app():
def start_drag(e):
# save the offset from the top-left corner of window
e.widget.offset = (e.x, e.y)
def move_app(e):
# calculate the top-left corner of window based on the saved offset
root.geometry(f' {e.x_root-e.widget.offset[0]} {e.y_root-e.widget.offset[1]}')
...
frame_label.bind("<Button-1>", start_drag)
frame_label.bind("<B1-Motion>", move_app)
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/469156.html
