我已经使用Python Tkinter创建了一个GUI应用程序,用于分析实验室中的数据。其中有很多按钮、图形和画布小部件。希望能够通过单个按钮仅使用一次来截取整个窗口('root'),并将文件名适当地保存。下面是一个示例,演示如何使用Mac内置的“截图”应用程序 here。
相关问题可以在这里,这里和这里找到,但都没有成功。最后一个链接这里几乎成功了,但保存的图像却是我的电脑桌面背景。我的电脑是Mac,运行的是MacOS Monterey 12.0.1。
'root'指的是Tkinter窗口。
我这样创建按钮:
相关问题可以在这里,这里和这里找到,但都没有成功。最后一个链接这里几乎成功了,但保存的图像却是我的电脑桌面背景。我的电脑是Mac,运行的是MacOS Monterey 12.0.1。
'root'指的是Tkinter窗口。
root = tk.Tk()
在脚本开头出现,类似于示例中的'window'。下面的代码示例中,我正在使用PIL.ImageGrab
。
这是当前的代码,它可以获取我桌面背景不太有用的截图:
def screenshot():
# retrieve the time string to use as a filename
file_name = root.time_string[-6:]
full_file_name = file_name + '_summary' + '.png'
x = root.winfo_rootx() + root.winfo_x()
y = root.winfo_rooty() + root.winfo_y()
x1 = x + root.winfo_width()
y1 = y + root.winfo_height()
ImageGrab.grab().crop((x, y, x1, y1)).save(full_file_name)
我这样创建按钮:
我这样创建按钮:
screenshot_btn = tk.Button(root, text='Screenshot', command=lambda: screenshot(), font=('Verdana', 24), state=DISABLED)
我将按钮放在 'root' 中,代码如下:
screenshot_btn.grid(row=11, column=3)
[这是我在stackoverflow上的第一篇帖子。如果我首次尝试时没有完全遵循所有指南,请提前谅解。感谢您的耐心。]
ImageGrab.grab().save(full_file_name)
得到了什么?你有多个屏幕吗?你运行的是哪个Python版本?PIL的哪个版本? - Thingamabobs