优化一下这个代码,使他正常运行
时间: 2023-08-11 17:31:09 浏览: 139
对不起,我的前一个回答中的代码有一些小问题。以下是更新后的代码,应该可以正常运行:
```python
import tkinter as tk
from tkinter import filedialog
import pyautogui
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.select_button = tk.Button(self)
self.select_button["text"] = "选择图片"
self.select_button["command"] = self.select_image
self.select_button.pack(side="top")
self.result_label = tk.Label(self)
self.result_label.pack(side="bottom")
def select_image(self):
# 弹出文件选择对话框选择要查找的图片
file_path = filedialog.askopenfilename(title="选择图片文件", filetypes=[("Image files", "*.png;*.jpg;*.jpeg")])
# 如果选择了图片则查找图片位置
if file_path:
location = find_image_location(file_path)
if location is not None:
self.result_label["text"] = f"图片 {file_path} 的位置坐标为:{location}"
else:
self.result_label["text"] = f"图片 {file_path} 不存在于桌面"
def find_image_location(image_path):
# 加载图片并获取图片位置坐标
location = pyautogui.locateOnScreen(image_path)
if location is not None:
# 获取图片中心点的坐标
x, y = pyautogui.center(location)
return (x, y)
else:
return None
root = tk.Tk()
app = Application(master=root)
app.mainloop()
```
在这个代码中,我们定义了一个 `Application` 类来创建我们的 Tkinter 应用程序。`create_widgets()` 方法创建了一个按钮和一个标签,`select_image()` 方法处理选择图片的逻辑,并在标签中显示结果。`find_image_location()` 函数用于查找指定图片的位置,并返回图片的中心点坐标。最后,我们创建了一个主窗口 `root`,实例化 `Application` 类,并调用 `mainloop()` 方法来运行应用程序。
阅读全文