【问题标题】:X and Y in label.place(x= , Y= ) are co-ordinates of which part of the label specifically as in top-left corner OR bottom-right corner etc..?label.place(x= , Y= ) 中的 X 和 Y 是标签哪一部分的坐标,特别是在左上角或右下角等。
【发布时间】:2022-01-04 15:46:00
【问题描述】:

我试图形成一个拖放小部件,但我不明白应该使用什么作为函数“drag_motion”中的坐标(在下面给出的代码中),但请先回答 x 和 Y 是什么在 label.place(x= , y= ) 中具体代表小部件上的哪个位置,或者它们是否有所不同?

from tkinter import*

def drag_start(event):
    label.startX = event.x
    label.startY = event.y

def drag_motion(event):
    x = event.x - label.startX
    y = event.y - label.startY 
    label.place(x=x, y=y)


window = Tk()

label = Label(window, bg="red", width=5, height=5)
label.place(x=0, y=0)

label.bind("<Button-1>", drag_start)
label.bind("<B1-Motion>", drag_motion)

window.mainloop()

【问题讨论】:

  • x改成x = event.widget.winfo_x() + event.x - label.startXy也一样

标签: python tkinter label


【解决方案1】:

place 为您提供了控制它的选项。来自官方文档(我已经修改以反映python语法):

锚点=位置 - Where 指定窗口的哪个点被定位在由 x强文本y、选择的 (x,y) 位置>relxrely 选项。锚点是根据窗口的外部区域,包括其边界(如果有)。因此,如果 se 在哪里,则窗口边框的右下角将出现在容器中给定的 (x,y) 位置。锚点位置默认为 nw

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    相关资源
    最近更新 更多