我使用适用于 Python 的
DelphiFMX GUI 库构建了一个简单的
Form
。该表格附加了一个MouseMove
事件。
我基本上想要的是当你移动鼠标时鼠标在Form上的
X
和Y
坐标,然后在Caption
的Form
中显示坐标。
我尝试了下面的代码,但它不起作用:
from delphifmx import *
class frmMain(Form):
def __init__(self, owner):
self.Width = 800
self.Height = 500
self.Caption = "Mouse Position: <X, Y>"
self.MouseMove = self.FormMouseMoveEvent
def FormMouseMoveEvent(self, sender, e):
self.Caption = "Mouse Position: <" + e.X + ", " + e.Y + ">"
def main():
Application.Initialize()
Application.Title = "My Application"
Application.MainForm = frmMain(Application)
Application.MainForm.Show()
Application.Run()
Application.MainForm.Destroy()
main()
表格的标题永远不会改变,总是只说“鼠标位置:
更新:
我认为
MouseMove
事件没有被触发。我已将代码更改为以下内容,但标题仍然没有更新:
def FormMouseMoveEvent(self, sender, e):
self.Caption = "Just changing the caption"
我认为问题在于 MouseMoveEvent 返回的“X 和 Y”坐标是整数,但 self.Caption 需要一个字符串: 您可以将 FormMouseMoveEvent() 重写为:
def FormMouseMoveEvent(self, sender, e):
self.Caption = "Mouse Position: <" + str(e.X) + ", " + str(e.Y) + ">"
希望对您有所帮助!