【问题标题】:Change Cursor when Hovering Over Part of Frame TKinter将鼠标悬停在帧 TKinter 的一部分上时更改光标
【发布时间】:2016-06-03 01:20:22
【问题描述】:

当您将鼠标悬停在框架的某个部分上时,如何使光标发生变化?我正在尝试使它有一个背景图像,当有人将鼠标悬停在某个部分上时,如果单击该部分会使框架发生变化,则光标将发生变化以表示如果他们单击将发生交互。

class Map(Frame):
    def __init__(self, master, controller, *args, **kwargs):
        Frame.__init__(self, master)
        self.controller = controller
        #keep player data stored at all times
        self.player = Player.Player()
        # define map gui here
        #repack this frame so binding included
        self.map_picture = PhotoImage(file=r"images/rsz_archipelago.gif")
        self.image = Label(self, image=self.map_picture)
        self.image.bind("<Button-1>", self.check_for_spot)
        self.image.grid(row=0, column=0, columnspan=40, rowspan=40)

        self.places = {MapRectange(420,490,175, 205):Hydra_Level}


    def check_for_spot(self, event):
        x1, y1 = event.x, event.y
        pt = Point(x1,y1)
        print("X: " + str(x1) + "  Y: " + str(y1))
        for place, level in self.places.iteritems():
            if place.point_is_in(pt):
                self.controller.show(level, self)
                break

【问题讨论】:

  • 那么,您希望光标在框架中时改变,或/和在点击框架中的图像后改变图像?
  • 我希望能够告诉光标在框架中输入某些坐标时发生变化
  • 你可以指定一个范围,如果你正在捕捉光标坐标,如果它有一定的坐标范围,就表明它改变
  • 如何捕捉光标坐标,比如每毫秒?
  • 查看下面的答案,如果您还有其他问题,请告诉我。欢呼

标签: python binding tkinter cursor


【解决方案1】:

获取光标坐标:

import Tkinter as tk
from Tkinter import Frame
root = tk.Tk()
frame1 = Frame(root, bg='blue',width='100px', height='100px')
frame1.pack()

def motion(event):
    x, y = event.x, event.y
    print('{}, {}'.format(x, y))


frame1.bind('<Motion>', motion)
root.mainloop()

您将在控制台中看到移动光标时的坐标,然后您可以定义范围并根据光标更改或图像... 请参考http://effbot.org/tkinterbook/ 有关于pythons Tkinter 的优秀文档。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      相关资源
      最近更新 更多