我有一个开始按钮图像,我试图在我的程序中变成一个按钮。但是,我认为我的数学错误或显然是错误的,因为它不起作用。基本上,我想要做的是,如果该人点击该按钮,它将启动一个if语句。有任何想法吗?提前谢谢!
#Assigning Mouse x,y Values
mousePt = win.getMouse()
xValue = startImage.getHeight()
yValue = startImage.getWidth()
#Assigning Buttons
if mousePt <= xValue and mousePt <= yValue:
hour = 2
startImage是我想要制作按钮的图像。小时是其他代码中陈述的变量。
答案 0 :(得分:0)
您将苹果与橙子进行比较。这一行:
if mousePt <= xValue and mousePt <= yValue:
与说法大致相同:
if Point(123, 45) <= 64 and Point(123, 45) <= 64:
将点数与宽度和高度进行比较是没有意义的。您需要将宽度和高度与图像的中心位置相结合,并提取X&amp;来自鼠标位置的Y值:
from graphics import *
win = GraphWin("Image Button", 400, 400)
imageCenter = Point(200, 200)
# 64 x 64 GIF image from http://www.iconsdb.com/icon-sets/web-2-green-icons/video-play-icon.html
startImage = Image(imageCenter, "video-play-64.gif")
startImage.draw(win)
imageWidth = startImage.getWidth()
imageHeight = startImage.getHeight()
imageLeft, imageRight = imageCenter.getX() - imageWidth/2, imageCenter.getX() + imageWidth/2
imageBottom, imageTop = imageCenter.getY() - imageHeight/2, imageCenter.getY() + imageHeight/2
start = False
while not start:
# Obtain mouse Point(x, y) value
mousePt = win.getMouse()
# Test if x,y is inside image
x, y = mousePt.getX(), mousePt.getY()
if imageLeft < x < imageRight and imageBottom < y < imageTop:
print("Bullseye!")
break
win.close()
此特定图标显示为圆形,您可以单击的区域包括其矩形边界框,其中一些位于圆圈外。可以将点击限制在完全可见的图像上,但需要更多的工作。