首页 > 解决方案 > tkinter 小部件在拖动窗口时消失

问题描述

我在使用后制作了一个可移动的小部件overrideredirect(1),一切都很好,除了当我快速左右拖动窗口多次或拖动它直到我的屏幕边框时,它里面的小部件正在消失。

这是我的代码:

from tkinter import *
import mouse

root = Tk()
root.overrideredirect(1)
root.geometry("700x200+500+200")

BG = Label(root, bd=0)
BG.pack(fill=BOTH, expand=True)


var1 = StringVar()

entry1 = Entry(BG, width=80, textvariable=var1)
entry1.place(x=170,y=57)

#-----------------------------------------------
var2 = StringVar()

entry2 = Entry(BG,width=80, textvariable=var2)
entry2.place(x=170,y=100)

def standard_bind():
   BG.bind('<B1-Motion>', lambda e: event(e, Mode=True))

def event(widget, Mode=False):
    global x, y
    if Mode:
        x = widget.x
        y = widget.y
    
    BG.bind('<B1-Motion>', lambda e: event(e))
    root.geometry('+%d+%d' % (mouse.get_position()[0]-x, mouse.get_position()[1]-y))


BG.bind('<B1-Motion>', lambda e: event(e, Mode=True))
BG.bind('<ButtonRelease-1>', lambda e: standard_bind())

root.mainloop()

标签: pythonpython-3.xtkinter

解决方案


推荐阅读