Python。返回当前光标位置和最后一次鼠标左键单击的位置

标签 python tkinter cursor-position

我希望能够将最后一次鼠标左键单击的光标位置定义为一个点,将当前光标位置定义为真实世界坐标中的一个点。到目前为止,我拥有的代码具有 Tkinter 导入和 Math 导入。我已经为这部分整理好了 GUI,但我不知道如何定义函数才能将其显示为我的 GUI 的标签。

class PointFrame(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)

        self.LastClick= Label(self, text= "Last Point Clicked:")
        self.LastClick.pack(side= LEFT)

        self.CurrentPosition= Label(self, text="Cursor Point:")
        self.CurrentPosition.pack(side= LEFT)

需要创建以下功能。

最佳答案

像这样:

from tkinter import *

class App():
    def __init__(self):
        root = Tk()

        self.last_point = (0, 0)

        self.prev_var = StringVar(value='-:-')
        self.curr_var = StringVar(value='-:-')

        labels = Frame(root)
        labels.pack()

        Label(labels, text='Last Point Clicked: ').pack(side=LEFT)
        prev = Label(labels, textvariable=self.prev_var)
        prev.pack(side=LEFT)
        Label(labels, text='Current point: ').pack(side=LEFT)
        curr = Label(labels, textvariable=self.curr_var)
        curr.pack(side=LEFT)

        self.canvas = Canvas(root, background='white')
        self.canvas.pack()
        self.canvas.bind('<Button-1>', self.on_click)

        self.canvas.bind('<Motion>', self.on_motion)
        self.line = self.canvas.create_line(0, 0, 0, 0)
        self.curr_text = self.canvas.create_text(0, 0)

        root.mainloop()
    def on_click(self, event):
        # Last click in absolute coordinates
        self.prev_var.set('%s:%s' % self.last_point)
        # Current point in relative coordinates
        self.curr_var.set('%s:%s' % (event.x - self.last_point[0], event.y - self.last_point[1]))
        self.last_point = event.x, event.y
    def on_motion(self, event):
        self.canvas.coords(self.line, self.last_point[0], self.last_point[1], event.x, event.y)
        self.canvas.coords(self.curr_text, event.x, event.y)
        self.canvas.itemconfigure(self.curr_text, text="%s\n%s\n\n\n" % (event.x - self.last_point[0], event.y - self.last_point[1]))

App()

关于Python。返回当前光标位置和最后一次鼠标左键单击的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383530/

相关文章:

python - 哪种Python设置更便携?

python - Tkinter Radiobutton 中指定宽度的垂直对齐字符串

python - 为什么 Tkinter Toplevel 对象被销毁?

python - tkinter 中不断更新图表

C# 右键单击​​ RichTextBox 中的移动光标

python - 导入错误: No module named 'helper'

python - 如何为以下内容写图归约

带有表情符号的快速光标位置

vim - vim中向上/向下翻页时如何保持光标的垂直位置?

python - 带有多字符分隔符的 python 中的 csv 阅读器